diff --git a/.gitignore b/.gitignore index 2015afa..9bd7321 100644 --- a/.gitignore +++ b/.gitignore @@ -1,7 +1,7 @@ -**.env -_volumes -_volumes -.vscode -*.env -*.env.d/* -localSettings/ +**.env +_volumes +_volumes +.vscode +*.env +*.env.d/* +localSettings/ diff --git a/README.md b/README.md index 1916d4b..9104232 100644 --- a/README.md +++ b/README.md @@ -1,58 +1,47 @@ -# git.limbosolutions.com - -Welcome to public repository of my [Git Server](https://git.limbosolutions.com) - -Using [gitea](https://git.limbosolutions.com/kb/gitea) and [duplicati](https://git.limbosolutions.com/kb/duplicati) for backups. - -[Check](doc/administration/README.md) for more information about admistration. - -## Requirements - -- Docker -_Currently hosted on an ubuntu lxc container with docker and portainer [+ information](https://git.limbosolutions.com/kb/lxc)._ - -- [Duplicati Image with mySql client](https://git.limbosolutions.com/kb/duplicati/src/branch/main/docker/mysqlclient/README.md) - -## Setup - -[Docker Compose File](docker-compose.yaml) - -## Backup & Restore - -Using [duplicati](https://git.limbosolutions.com/kb/duplicati) to daily backups of files and databases. - -- Backup Name: git -- Destination Server: backupsrv01.dev.lan -- Destination Path: /git.limbosolutions.com/duplicati/git -- Source Data : /git (check [Docker Compose File](docker-compose.yaml) for folder structure on /git) -- Schedule: every day at 1 am -- run-script-before-required:/duplicati-mysqlclient/scripts/backupdb.sh - -### Settings - -#### Default Options - -```bash - ---send-mail-any-operation=true ---send-mail-body=%RESULT% ---send-mail-level=all ---send-mail-subject=Duplicati %OPERATIONNAME% report for wiki.limbosolutions.com -> %backup-name% ---send-mail-to=to@email ---send-http-result-output-format=Duplicati ---send-mail-url= smtp://serveraddress:25 ---send-mail-password=username ---send-mail-username=pass - -``` - -### Restore Database - -```bash -#select a file to import -ls /db-dumps -#select a file to import -DB_FILE= "file name to import" -mysql --host db -uroot -p ${MYSQL_DATABASE} < /db-dumps/$DB_FILE -#root password (root password is the enviromnent variable ${MYSQL_ROOT_PASSWORD}) -``` +# git.limbosolutions.com + +Welcome to public repository of my [Git Server](https://git.limbosolutions.com) + +Using [gitea](https://git.limbosolutions.com/kb/gitea) and [duplicati](https://git.limbosolutions.com/kb/duplicati) for backups. + + +## Requirements + +- Docker +- Docker Compose +- Portainer (optional) +- [Duplicati Image with mySql client](https://git.limbosolutions.com/kb/duplicati/src/branch/main/docker/mysqlclient/README.md) + + +## Setup + +[Docker Compose File](docker-compose.yaml) + +## Backup and Restore + +Using [custom duplicati image](https://git.limbosolutions.com/kb/duplicati) to daily backups files and databases. Every action (backup/restore) creates an measurement in influxdb for reporting and alerts. + + +### Duplicati - Default Options + +Notify Influxdb. + +--run-script-after=duplicati-influxdb-notify + +### Duplicati - git job Options + +Create db dump. + +run-script-before-required:duplicati-mysql-backup + +### Restore Database + +```bash +#select a file to import +ls /db-dumps +#select a file to import +DB_FILE= "file name to import" +mysql --host db -uroot -p ${MYSQL_DATABASE} < /db-dumps/$DB_FILE +#root password (root password is the enviromnent variable ${MYSQL_ROOT_PASSWORD}) +``` + diff --git a/doc/administration/README.md b/doc/administration/README.md deleted file mode 100644 index aa62bea..0000000 --- a/doc/administration/README.md +++ /dev/null @@ -1,25 +0,0 @@ -# Administration - -## HomeAssistant DashBoard - -![Home Assistant Dashboard](images/git-homessistant-dashboard.png "Home Assistant Dashboard") - -```yaml -type: vertical-stack -cards: - - type: entities - entities: - - type: weblink - name: Homepage - url: http://git.limbosolutions.com - - type: weblink - name: Backups - url: http://wansrv01.dev.lan:8200/ - - type: weblink - name: Hosting - url: wansrv01 - - type: weblink - name: Git - url: https://git.limbosolutions.com/limbosolutions.com/git.limbosolutions.com - title: git.limbosolutions.com -``` diff --git a/doc/administration/images/git-homessistant-dashboard.png b/doc/administration/images/git-homessistant-dashboard.png deleted file mode 100644 index 490571b..0000000 Binary files a/doc/administration/images/git-homessistant-dashboard.png and /dev/null differ diff --git a/docker-compose.yaml b/docker-compose.yaml index 96d8b64..779143d 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -1,61 +1,65 @@ -version: "3" -services: - app: - image: gitea/gitea:1.18 - environment: - - GITEA__database__DB_TYPE=mysql - - GITEA__database__HOST=db:3306 - - GITEA__database__NAME=${DB_NAME} - - GITEA__database__USER=${DB_USER} - - GITEA__database__PASSWD=${DB_PASSWORD} - - DISABLE_SSH=true - restart: unless-stopped - volumes: - - data:/data - - /etc/timezone:/etc/timezone:ro - - /etc/localtime:/etc/localtime:ro - ports: - - ${GITEA_PORT}:80 - networks: - - gitea - db: - image: mysql:8 - networks: - - gitea - restart: unless-stopped - environment: - - MYSQL_ROOT_PASSWORD=${DB_ROOT_PASSWORD} - - MYSQL_USER=${DB_USER} - - MYSQL_PASSWORD=${DB_PASSWORD} - - MYSQL_DATABASE=${DB_NAME} - volumes: - - db:/var/lib/mysql - - /etc/timezone:/etc/timezone:ro - - /etc/localtime:/etc/localtime:ro - - db-dumps:/db-dumps:ro - duplicati: - image: duplicati-mysqlclient #https://git.limbosolutions.com/kb/duplicati/src/branch/main/docker/mysqlclient - networks: - - gitea - environment: - - MYSQL_HOST=db - - MYSQL_DATABASE=${DB_NAME} - - MYSQL_USER=${DB_USER} - - MYSQL_PASSWORD=${DB_PASSWORD} - - DESTINATION=/git/db-dumps - volumes: - - duplicati-data:/data - - duplicati-data:/git/duplicati-data:ro - - data:/git/data:ro - - db:/git/db:ro - - db-dumps:/git/db-dumps - ports: - - ${DUPLICATI_PORT}:8200 - restart: unless-stopped -volumes: - duplicati-data: - data: - db: - db-dumps: -networks: - gitea: +version: "3" +services: + app: + image: gitea/gitea:1.18 + environment: + - GITEA__database__DB_TYPE=mysql + - GITEA__database__HOST=db:3306 + - GITEA__database__NAME=${DB_NAME} + - GITEA__database__USER=${DB_USER} + - GITEA__database__PASSWD=${DB_PASSWORD} + - DISABLE_SSH=true + restart: unless-stopped + volumes: + - data:/data + - /etc/timezone:/etc/timezone:ro + - /etc/localtime:/etc/localtime:ro + ports: + - ${GITEA_PORT}:80 + networks: + - gitea + db: + image: mysql:8 + networks: + - gitea + restart: unless-stopped + environment: + - MYSQL_ROOT_PASSWORD=${DB_ROOT_PASSWORD} + - MYSQL_USER=${DB_USER} + - MYSQL_PASSWORD=${DB_PASSWORD} + - MYSQL_DATABASE=${DB_NAME} + volumes: + - db:/var/lib/mysql + - /etc/timezone:/etc/timezone:ro + - db-dumps:/db-dumps:ro + duplicati: + image: duplicati-mysqlclient #https://git.limbosolutions.com/kb/duplicati/src/branch/main/docker/mysqlclient + networks: + - gitea + environment: + - MYSQL_HOST=db + - MYSQL_DATABASE=${DB_NAME} + - MYSQL_USER=${DB_USER} + - MYSQL_PASSWORD=${DB_PASSWORD} + - MYSQL_BACKUP_FOLDER=/bck/db-dumps + - INFLUXDB_SERVER=${INFLUXDB_SERVER} + - INFLUXDB_BUCKET=${INFLUXDB_BUCKET} + - INFLUXDB_ORG=${INFLUXDB_ORG} + - INFLUXDB_TOKEN=${INFLUXDB_TOKEN} + - INFLUXDB_CLIENT_HOSTNAME=${INFLUXDB_CLIENT_HOSTNAME} + volumes: + - duplicati-data:/data + - duplicati-data:/bck/duplicati-data:ro + - data:/bck/data:ro + - db:/bck/db:ro + - db-dumps:/bck/db-dumps + ports: + - ${DUPLICATI_PORT}:8200 + restart: unless-stopped +volumes: + duplicati-data: + data: + db: + db-dumps: +networks: + gitea: