Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/aceberg/git-syr
Sync Your Repos - pull or push your git repos regularly. For dotfiles backups or note taking in git repo
https://github.com/aceberg/git-syr
automation deb gitpull gitpush go-app linux-app self-hosted selfhosted sync web-gui webapp webgui
Last synced: 3 months ago
JSON representation
Sync Your Repos - pull or push your git repos regularly. For dotfiles backups or note taking in git repo
- Host: GitHub
- URL: https://github.com/aceberg/git-syr
- Owner: aceberg
- License: mit
- Created: 2022-11-09T15:35:02.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2024-09-20T11:34:52.000Z (3 months ago)
- Last Synced: 2024-09-29T15:44:23.544Z (3 months ago)
- Topics: automation, deb, gitpull, gitpush, go-app, linux-app, self-hosted, selfhosted, sync, web-gui, webapp, webgui
- Language: Go
- Homepage:
- Size: 185 KB
- Stars: 20
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
README
[![Go Report Card](https://goreportcard.com/badge/github.com/aceberg/git-syr)](https://goreportcard.com/report/github.com/aceberg/git-syr)
[![Binary-release](https://github.com/aceberg/git-syr/actions/workflows/release.yml/badge.svg)](https://github.com/aceberg/git-syr/actions/workflows/release.yml)
![GitHub](https://img.shields.io/github/license/aceberg/git-syr)
[![Maintainability](https://api.codeclimate.com/v1/badges/d02b3d4486ec4b8158af/maintainability)](https://codeclimate.com/github/aceberg/git-syr/maintainability)
git-syr
Sync Your Repos - pull or push your git repos regularly. For dotfiles backups or note taking in git repo
- [CLI and GUI](https://github.com/aceberg/git-syr#cli-and-gui)
- [Installation](https://github.com/aceberg/git-syr#installation)
- [Usage](https://github.com/aceberg/git-syr#usage)
- [Config](https://github.com/aceberg/git-syr#config)
- [Options](https://github.com/aceberg/git-syr#options)
- [Thanks](https://github.com/aceberg/git-syr#thanks)![screenshot](https://raw.githubusercontent.com/aceberg/git-syr/main/assets/Screenshot%202022-12-22%20at%2012-51-48%20Sync%20Your%20Repos.png)
## CLI and GUI
There are two packages available: `git-syr` and `git-syr-cli`. For command line only installation you can use `git-syr-cli`, just replace the name in the instructions below. Though `git-syr` is capable of both CLI and GUI modes.## Installation
### 1. From .deb repository (recommended)
```sh
curl -s --compressed "https://aceberg.github.io/ppa/KEY.gpg" | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/aceberg.gpg
```
```sh
sudo curl -s --compressed -o /etc/apt/sources.list.d/aceberg.list "https://aceberg.github.io/ppa/aceberg.list"
```
```sh
sudo apt update && sudo apt install git-syr
```
### 2. From .deb file
Download [latest](https://github.com/aceberg/git-syr/releases/latest) release, install with your package maneger### 3. From .tar.gz
Download [latest](https://github.com/aceberg/git-syr/releases/latest) release, then
```sh
tar xvzf git-syr-*.tar.gz
cd git-syr
sudo ./install.sh
```## Usage
### 1. Systemd as user (recommended)
Enable and start service, replace `MYUSER` with your username
```sh
sudo systemctl enable [email protected]
sudo systemctl start [email protected]
```
Web GUI will be available at [http://0.0.0.0:8844](http://0.0.0.0:8844)### 2. Systemd as root
Enable and start service
```sh
sudo systemctl enable git-syr.service
sudo systemctl start git-syr.service
```
Web GUI will be available at [http://0.0.0.0:8844](http://0.0.0.0:8844)### 3. From command line
Just run `git-syr`. Be mindful of the config files paths listed in [options](https://github.com/aceberg/git-syr#options) section.## Config
### 1. With web GUI
You can do all configuration through web interface. Config files paths are listed in [options](https://github.com/aceberg/git-syr#options) section below.### 2. CLI
`repos.yaml` example:
```yaml
- name: Dotfiles
path: /home/data/repo/dotfiles
timeout: 4h
pull: "no"
push: "yes"- name: MyNotes
path: /home/data/repo/MyNotes
timeout: 1m
pull: "yes"
push: "yes"
```
`config.yaml` example:
```yaml
color: light
host: 0.0.0.0
nodepath: ""
port: "8844"
theme: cosmo
```## Options
### 1. git-syr
| Key | Description | Default | Systemd (user) | Systemd (root) |
| -------- | ----------- | ------- | --- | --- |
| -c | Path to GUI config file |./config.yaml| $HOME/.config/git-syr/config.yaml | /etc/git-syr/config.yaml |
| -l | Path to log file | ./git-syr.log | $HOME/.config/git-syr/git-syr.log | /var/log/git-syr.log |
| -n | Path to [local node modules](https://github.com/aceberg/my-dockerfiles/tree/main/node-bootstrap) | | | |
| -r | Path to repos yaml file |./repos.yaml| $HOME/.config/git-syr/repos.yaml | /etc/git-syr/repos.yaml |
| -w | Launch without web gui | false | | |### 2. git-syr-cli
| Key | Description | Default | Systemd (user) | Systemd (root) |
| -------- | ----------- | ------- | --- | --- |
| -l | Path to log file | "" (No log file) | $HOME/.config/git-syr/git-syr.log | /var/log/git-syr.log |
| -r | Path to repos yaml file |./repos.yaml| $HOME/.config/git-syr/repos.yaml | /etc/git-syr/repos.yaml |To run git-syr without log file pass empty string `-l ""`
## Thanks
- All go packages listed in [dependencies](https://github.com/aceberg/git-syr/network/dependencies)
- [Bootstrap](https://getbootstrap.com/)
- Themes: [Free themes for Bootstrap](https://bootswatch.com)
- Cheese icons created by Freepik - Flaticon