diff --git a/.gitignore b/.gitignore index e0f37f2..ac66f0e 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ .env config/ +data/ \ No newline at end of file diff --git a/dashboard/docker-compose.yml b/dashboard/docker-compose.yml index 77717f5..6329dd8 100644 --- a/dashboard/docker-compose.yml +++ b/dashboard/docker-compose.yml @@ -34,6 +34,33 @@ services: - 3001:3001 volumes: - /:/mnt/host:ro + prometheus: + image: prom/prometheus + container_name: prometheus + user: '0' + command: + - '--config.file=/etc/prometheus/prometheus.yml' + ports: + - 9090:9090 + restart: unless-stopped + volumes: + - ${CONFIG_LOCATION}/prometheus:/etc/prometheus + - ${DATA_LOCATION}/prometheus:/prometheus + grafana: + image: grafana/grafana-enterprise + container_name: grafana + restart: unless-stopped + user: '0' + environment: + - GF_SERVER_ROOT_URL=https://grafana.${DOMAIN} + - GF_INSTALL_PLUGINS=grafana-clock-panel + - VIRTUAL_HOST=grafana.${DOMAIN} + - LETSENCRYPT_HOST=grafana.${DOMAIN} + - LETSENCRYPT_EMAIL=${EMAIL} + volumes: + - ${CONFIG_LOCATION}/grafana:/var/lib/grafana + ports: + - '3003:3000' networks: default: name: nginx-proxy diff --git a/ghost-fusiondance/config.development.json b/ghost-fusiondance/config.development.json deleted file mode 100644 index 8462233..0000000 --- a/ghost-fusiondance/config.development.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "url": "http://localhost:2368", - "server": { - "port": 2368, - "host": "::" - }, - "mail": { - "transport": "SMTP", - "options": { - "service": "Mailgun", - "host": "smtp.mailgun.org", - "port": 587, - "secure": false, - "auth": { - "user": "", - "pass": "" - } - } - }, - "logging": { - "transports": [ - "file", - "stdout" - ] - }, - "process": "systemd", - "paths": { - "contentPath": "/var/lib/ghost/content" - } - } - \ No newline at end of file diff --git a/ghost-fusiondance/config.production.json b/ghost-fusiondance/config.production.json deleted file mode 100644 index 8b1d4a3..0000000 --- a/ghost-fusiondance/config.production.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "url": "http://localhost:2368", - "server": { - "port": 2368, - "host": "::" - }, - "mail": { - "transport": "SMTP", - "options": { - "service": "Mailgun", - "host": "smtp.mailgun.org", - "port": 587, - "secure": false, - "auth": { - "user": "", - "pass": "" - } - } - }, - "logging": { - "transports": [ - "file", - "stdout" - ] - }, - "process": "systemd", - "paths": { - "contentPath": "/var/lib/ghost/content" - } -} diff --git a/nextcloud/.gitignore b/nextcloud/.gitignore index 07f43b8..37656ec 100644 --- a/nextcloud/.gitignore +++ b/nextcloud/.gitignore @@ -1 +1,2 @@ -data/* \ No newline at end of file +data/* +collabora \ No newline at end of file diff --git a/nextcloud/coolwsd.xml b/nextcloud/coolwsd.xml new file mode 100755 index 0000000..7793d7d --- /dev/null +++ b/nextcloud/coolwsd.xml @@ -0,0 +1,341 @@ + + + + + + + + + + false + + + de_DE en_GB en_US es_ES fr_FR it nl pt_BR pt_PT ru + + + + + + + + + + + + + false + + + + + + + + + + + + + true + + + 4 + + + + 4 + 5 + 5 + false + 96 + 3600 + 30 + 300 + true + true + false + 0 + 8000 + 0 + 0 + 100 + 5 + 100 + 500 + 5000 + + 10000 + 60 + 300 + 3072 + 85 + 120 + + + + + 300 + 900 + + + + + + + true + + warning + trace + Socket,WebSocket,Admin,Pixel + notice + fatal + false + + -INFO-WARN + + + /var/log/coolwsd.log + never + timestamp + true + 10 days + 10 + true + false + + + false + 82589933 + + false + false + false + + + + + /var/log/coolwsd.trace.json + + + false + + + + + + + + false + + + + + + all + any + + + + 192\.168\.[0-9]{1,3}\.[0-9]{1,3} + ::ffff:192\.168\.[0-9]{1,3}\.[0-9]{1,3} + 127\.0\.0\.1 + ::ffff:127\.0\.0\.1 + ::1 + 172\.1[6789]\.[0-9]{1,3}\.[0-9]{1,3} + ::ffff:172\.1[6789]\.[0-9]{1,3}\.[0-9]{1,3} + 172\.2[0-9]\.[0-9]{1,3}\.[0-9]{1,3} + ::ffff:172\.2[0-9]\.[0-9]{1,3}\.[0-9]{1,3} + 172\.3[01]\.[0-9]{1,3}\.[0-9]{1,3} + ::ffff:172\.3[01]\.[0-9]{1,3}\.[0-9]{1,3} + 10\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3} + ::ffff:10\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3} + + + 192\.168\.[0-9]{1,3}\.[0-9]{1,3} + ::ffff:192\.168\.[0-9]{1,3}\.[0-9]{1,3} + 127\.0\.0\.1 + ::ffff:127\.0\.0\.1 + ::1 + 172\.1[6789]\.[0-9]{1,3}\.[0-9]{1,3} + ::ffff:172\.1[6789]\.[0-9]{1,3}\.[0-9]{1,3} + 172\.2[0-9]\.[0-9]{1,3}\.[0-9]{1,3} + ::ffff:172\.2[0-9]\.[0-9]{1,3}\.[0-9]{1,3} + 172\.3[01]\.[0-9]{1,3}\.[0-9]{1,3} + ::ffff:172\.3[01]\.[0-9]{1,3}\.[0-9]{1,3} + 10\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3} + ::ffff:10\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3} + localhost + + + + + + + + + + + + false + + true + /etc/coolwsd/cert.pem + /etc/coolwsd/key.pem + /etc/coolwsd/ca-chain.cert.pem + false + + + 1000 + + + + + + + false + 31536000 + + + + + true + true + 1800 + false + 1 + false + false + + + + + + + + + + + + + + default + true + + + + + + 0 + + 900 + + + + + + + + + + + + true + + + + + + + + + + true + false + + + + true + true + true + true + + + + + + + + + + + + + + + + + + + false + + + + + + + false + + + + log + + + + + + + + + + + + + true + + + https://help.collaboraoffice.com/help.html? + + + true + + + + + + + + diff --git a/nextcloud/docker-compose.yml b/nextcloud/docker-compose.yml index d40d1ec..092ea1c 100644 --- a/nextcloud/docker-compose.yml +++ b/nextcloud/docker-compose.yml @@ -1,4 +1,25 @@ services: + collabora: + image: collabora/code:latest + restart: always + cap_add: + - MKNOD + # volumes: + # - ./collabora:/etc/coolwsd/ + environment: + DOMAIN: "collabora.${DOMAIN}" + VIRTUAL_HOST: "collabora.${DOMAIN}" + EXTRA_PARAMS: "--o:ssl.enable=false --o:ssl.termination=true" + ALIASGROUP2: "https://collabora.${DOMAIN}:443" + ALIASGROUP3: "https://nextcloud.${DOMAIN}:443" + ALIASGROUP1: "http://192.168.86.30:9980" + SERVER_NAME: "collabora.${DOMAIN}" + USERNAME: "admin" + PASSWORD: "pass" + LETSENCRYPT_HOST: collabora.${DOMAIN} + LETSENCRYPT_EMAIL: ${EMAIL} + # ports: + # - 127.0.0.1:9980:9980 redis: # user: "${UID}:${GID}" image: redis:alpine diff --git a/readers/docker-compose.yml b/readers/docker-compose.yml index 20a9a1f..4e7ab06 100644 --- a/readers/docker-compose.yml +++ b/readers/docker-compose.yml @@ -26,9 +26,9 @@ services: - PUID=${UID} - PGID=${GID} - TZ=${TZ} - - VIRTUAL_HOST=ubooquity.${DOMAIN} + - VIRTUAL_HOST=comics.${DOMAIN} - VIRTUAL_PORT=2202 - - LETSENCRYPT_HOST=ubooquity.${DOMAIN} + - LETSENCRYPT_HOST=comics.${DOMAIN} - LETSENCRYPT_EMAIL= ${EMAIL} # - MAXMEM= #optional volumes: diff --git a/recipes/.env.example b/recipes/.env.example new file mode 100644 index 0000000..01f9c3b --- /dev/null +++ b/recipes/.env.example @@ -0,0 +1,16 @@ +DOMAIN= +EMAIl= + +# random secret key, use for example `base64 /dev/urandom | head -c50` to generate one +SECRET_KEY= + +# allowed hosts (see documentation), should be set to your hostname(s) but might be * (default) for some proxies/providers +# ALLOWED_HOSTS=recipes.mydomain.com + +# add only a database password if you want to run with the default postgres, otherwise change settings accordingly +DB_ENGINE=django.db.backends.postgresql +POSTGRES_HOST=db_recipes +POSTGRES_DB=djangodb +POSTGRES_PORT=5432 +POSTGRES_USER=djangouser +POSTGRES_PASSWORD= diff --git a/recipes/docker-compose.yml b/recipes/docker-compose.yml new file mode 100644 index 0000000..9bdc7de --- /dev/null +++ b/recipes/docker-compose.yml @@ -0,0 +1,33 @@ +services: + db: + container_name: db-recipes + restart: always + image: postgres:16-alpine + volumes: + - ./data:/var/lib/postgresql/data + env_file: + - ./.env + app: + restart: always + image: vabene1111/recipes + env_file: + - ./.env + environment: + VIRTUAL_HOST: "recipes.${DOMAIN}" + LETSENCRYPT_HOST: "recipes.${DOMAIN}" + LETSENCRYPT_EMAIL: ${EMAIL} + volumes: + - ./config/staticfiles:/opt/recipes/staticfiles + # Do not make this a bind mount, see https://docs.tandoor.dev/install/docker/#volumes-vs-bind-mounts + - nginx_config:/opt/recipes/nginx/conf.d + - ./config/mediafiles:/opt/recipes/mediafiles + ports: + - 8075:8080 + depends_on: + - db +networks: + default: + name: nginx-proxy + external: true +volumes: + nginx_config: \ No newline at end of file diff --git a/rss-reader/docker-compose.yml b/rss-reader/docker-compose.yml index f1effcf..ece4ed8 100644 --- a/rss-reader/docker-compose.yml +++ b/rss-reader/docker-compose.yml @@ -30,6 +30,17 @@ services: volumes: - ${CONFIG_LOCATION}/mariadb:/config restart: unless-stopped + rss-bridge: + image: rssbridge/rss-bridge:latest + environment: + - VIRTUAL_HOST=rss-bridge.${DOMAIN} + - LETSENCRYPT_HOST=rss-bridge.${DOMAIN} + - LETSENCRYPT_EMAIL=${EMAIL} + volumes: + - ${CONFIG_LOCATION}/rss-bridge:/config:rw + ports: + - 3002:80 + restart: unless-stopped networks: default: name: nginx-proxy diff --git a/botc/.env.example b/sites/botc/.env.example similarity index 100% rename from botc/.env.example rename to sites/botc/.env.example diff --git a/botc/.gitignore b/sites/botc/.gitignore similarity index 100% rename from botc/.gitignore rename to sites/botc/.gitignore diff --git a/botc/docker-compose.yml b/sites/botc/docker-compose.yml similarity index 100% rename from botc/docker-compose.yml rename to sites/botc/docker-compose.yml diff --git a/ghost-fusiondance/.env.example b/sites/fusiondance/.env.example similarity index 100% rename from ghost-fusiondance/.env.example rename to sites/fusiondance/.env.example diff --git a/ghost-fusiondance/.gitignore b/sites/fusiondance/.gitignore similarity index 100% rename from ghost-fusiondance/.gitignore rename to sites/fusiondance/.gitignore diff --git a/ghost-fusiondance/docker-compose.yml b/sites/fusiondance/docker-compose.yml similarity index 100% rename from ghost-fusiondance/docker-compose.yml rename to sites/fusiondance/docker-compose.yml diff --git a/sites/gamesclub/.env.example b/sites/gamesclub/.env.example new file mode 100644 index 0000000..f160373 --- /dev/null +++ b/sites/gamesclub/.env.example @@ -0,0 +1,5 @@ +DOMAIN=example.com +DBPASS=password +EMAIL=example@mail.com +DOMAIN=example.com + diff --git a/sites/gamesclub/.gitignore b/sites/gamesclub/.gitignore new file mode 100644 index 0000000..0485494 --- /dev/null +++ b/sites/gamesclub/.gitignore @@ -0,0 +1,3 @@ +db/* +content/* +config.*.json \ No newline at end of file diff --git a/sites/gamesclub/docker-compose.yml b/sites/gamesclub/docker-compose.yml new file mode 100644 index 0000000..b54398e --- /dev/null +++ b/sites/gamesclub/docker-compose.yml @@ -0,0 +1,41 @@ +services: + + ghost: + image: ghost:5 + restart: always + ports: + - 2369:2368 + expose: + - 2369 + environment: + # see https://ghost.org/docs/config/#configuration-options + database__client: mysql + database__connection__host: gamesclub-db-1 + database__connection__user: root + database__connection__password: ${DBPASS} + database__connection__database: ghost + VIRTUAL_HOST: "${DOMAIN}, www.${DOMAIN}" + VIRTUAL_PORT: 2369 + LETSENCRYPT_HOST: "${DOMAIN}, www.${DOMAIN}" + LETSENCRYPT_EMAIL: ${EMAIL} + # url: http://0.0.0.0:2369 #Dev + url: "https://${DOMAIN}" #Prod + # contrary to the default mentioned in the linked documentation, this image defaults to NODE_ENV=production (so development mode needs to be explicitly specified if desired) + # NODE_ENV: development + volumes: + - ./content:/var/lib/ghost/content + # - ./themes:/var/lib/ghost/current/content/themes:rw + db: + image: mysql:8.0 + restart: always + environment: + MYSQL_DATABASE: ghost + MYSQL_ROOT_PASSWORD: ${DBPASS} + volumes: + - db:/var/lib/mysql +volumes: + db: +networks: + default: + name: nginx-proxy + external: true \ No newline at end of file diff --git a/sites/gamesclub/update.sh b/sites/gamesclub/update.sh new file mode 100755 index 0000000..2265d89 --- /dev/null +++ b/sites/gamesclub/update.sh @@ -0,0 +1,2 @@ +sudo docker cp config.development.json gamesclub-ghost-1:/var/lib/ghost/. +sudo docker cp config.production.json gamesclub-ghost-1:/var/lib/ghost/. \ No newline at end of file diff --git a/sites/photos/.env.example b/sites/photos/.env.example new file mode 100644 index 0000000..f160373 --- /dev/null +++ b/sites/photos/.env.example @@ -0,0 +1,5 @@ +DOMAIN=example.com +DBPASS=password +EMAIL=example@mail.com +DOMAIN=example.com + diff --git a/sites/photos/.gitignore b/sites/photos/.gitignore new file mode 100644 index 0000000..0485494 --- /dev/null +++ b/sites/photos/.gitignore @@ -0,0 +1,3 @@ +db/* +content/* +config.*.json \ No newline at end of file diff --git a/sites/photos/docker-compose.yml b/sites/photos/docker-compose.yml new file mode 100644 index 0000000..f60a54c --- /dev/null +++ b/sites/photos/docker-compose.yml @@ -0,0 +1,42 @@ +services: + ghost: + image: ghost:5 + restart: always + ports: + - 2370:2368 + expose: + - 2370 + environment: + # see https://ghost.org/docs/config/#configuration-options + database__client: mysql + database__connection__host: photos-db-1 + database__connection__user: root + database__connection__password: ${DBPASS} + database__connection__database: ghost + # VIRTUAL_HOST: "www.${DOMAIN}, ${DOMAIN}" + VIRTUAL_HOST: "photos.${DOMAIN}" + VIRTUAL_PORT: 2370 + # LETSENCRYPT_HOST: "${DOMAIN}, www.${DOMAIN}" + LETSENCRYPT_HOST: "photos.${DOMAIN}" + LETSENCRYPT_EMAIL: ${EMAIL} + # url: http://0.0.0.0:2370 #Dev + url: "https://photos.${DOMAIN}" #Prod + # contrary to the default mentioned in the linked documentation, this image defaults to NODE_ENV=production (so development mode needs to be explicitly specified if desired) + NODE_ENV: production + volumes: + - ./content:/var/lib/ghost/content + # - ./themes:/var/lib/ghost/current/content/themes:rw + db: + image: mysql:8.0 + restart: always + environment: + MYSQL_DATABASE: ghost + MYSQL_ROOT_PASSWORD: ${DBPASS} + volumes: + - db:/var/lib/mysql +volumes: + db: +networks: + default: + name: nginx-proxy + external: true \ No newline at end of file