diff --git a/.gitignore b/.gitignore index 262db17..c964872 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,2 @@ -*/.env +*/.env localSettings \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..5c99ee7 --- /dev/null +++ b/README.md @@ -0,0 +1,30 @@ +# limbosolutions.com + + + +## 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/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 - data job Options + + diff --git a/docker/docker-compose.yaml b/docker/docker-compose.yaml index cd8186d..7b26cdc 100644 --- a/docker/docker-compose.yaml +++ b/docker/docker-compose.yaml @@ -1,49 +1,64 @@ -version: '3' -services: - nginx: - image: nginx:latest - volumes: - - nginx-conf.d:/etc/nginx/conf.d - - letsencrypt-conf:/etc/letsencrypt - - certbot-www:/var/www/certbot - ports: - - 443:443 - - 80:80 - command: "/bin/sh -c 'while :; do sleep 6h & wait $${!}; nginx -s reload; done & nginx -g \"daemon off;\"'" - restart: unless-stopped - duplicati: - image: duplicati/duplicati:latest - volumes: - - duplicati_data:/data - - nginx-conf.d:/backup/nginx-conf.d:ro - - letsencrypt-conf:/backup/letsencrypt-conf:ro - - certbot-www:/backup/certbot-www:ro - - duplicati_data:/backup/duplicati_data:ro - ports: - - 8205:8200 - restart: unless-stopped - code-server: - image: lscr.io/linuxserver/code-server:latest - environment: - #- PUID=1000 - #- PGID=1000 - - TZ=Europe/London - - PASSWORD=${ADMIN_PASSWORD} #optional - #- HASHED_PASSWORD= #optional - #- SUDO_PASSWORD=password #optional - #- SUDO_PASSWORD_HASH= #optional - #- PROXY_DOMAIN=code-server.my.domain #optional - - DEFAULT_WORKSPACE=/config/workspace #optional - volumes: - - code-server_config:/config - - nginx-conf.d:/nginx/conf.d - - letsencrypt-conf:/letsencrypt/conf - ports: - - 8444:8443 - restart: unless-stopped -volumes: - nginx-conf.d: - letsencrypt-conf: - certbot-www: - duplicati_data: +version: '3' +services: + nginx: + image: nginx:latest + volumes: + - nginx-conf.d:/etc/nginx/conf.d + - letsencrypt-conf:/etc/letsencrypt + - certbot-www:/var/www/certbot + ports: + - 443:443 + - 80:80 + - 8080:8080 + command: "/bin/sh -c 'while :; do sleep 6h & wait $${!}; nginx -s reload; done & nginx -g \"daemon off;\"'" + restart: unless-stopped + duplicati: + image: duplicati-mysqlclient:latest + environment: + - INFLUXDB_SERVER=${INFLUXDB_SERVER} + - INFLUXDB_BUCKET=${INFLUXDB_BUCKET} + - INFLUXDB_ORG=${INFLUXDB_ORG} + - INFLUXDB_TOKEN=${INFLUXDB_TOKEN} + - INFLUXDB_CLIENT_HOSTNAME=${INFLUXDB_CLIENT_HOSTNAME} + volumes: + - duplicati_tmpdata:/data + - nginx-conf.d:/bck/nginx-conf.d + - letsencrypt-conf:/bck/letsencrypt-conf + - certbot-www:/bck/certbot-www + - duplicati_tmpdata:/bck/duplicati_tmpdata + ports: + - 8205:8200 + restart: unless-stopped + code-server: + image: lscr.io/linuxserver/code-server:latest + environment: + #- PUID=1000 + #- PGID=1000 + - TZ=Europe/London + - PASSWORD=${ADMIN_PASSWORD} #optional + #- HASHED_PASSWORD= #optional + #- SUDO_PASSWORD=password #optional + #- SUDO_PASSWORD_HASH= #optional + #- PROXY_DOMAIN=code-server.my.domain #optional + - DEFAULT_WORKSPACE=/config/workspace #optional + volumes: + - code-server_config:/config + - nginx-conf.d:/nginx/conf.d + - letsencrypt-conf:/letsencrypt/conf + ports: + - 8444:8443 + restart: unless-stopped + prometheus-exporter: + image: nginx/nginx-prometheus-exporter + command: + - -nginx.scrape-uri + - http://wan_reverse_proxy-nginx-1:8080/stub_status + ports: + - 9113:9113 + restart: unless-stopped +volumes: + nginx-conf.d: + letsencrypt-conf: + certbot-www: + duplicati_tmpdata: code-server_config: \ No newline at end of file