diff --git a/analytics/docker-compose.yml b/analytics/docker-compose.yml deleted file mode 100644 index 7314081..0000000 --- a/analytics/docker-compose.yml +++ /dev/null @@ -1,166 +0,0 @@ -version: '3.9' - -services: - grafana: - image: grafana/grafana:8.4.5 - container_name: grafana - restart: unless-stopped - volumes: - - '/home/nick/configs/analytics/grafana:/var/lib/grafana' - environment: - - 'GF_SECURITY_ALLOW_EMBEDDING=true' - - 'GF_SMTP_ENABLED=true' - - 'GF_SMTP_HOST=${SMTP_HOST}' - - 'GF_SMTP_USER=${SMTP_USER}' - - 'GF_SMTP_PASSWORD=${SMTP_PASSWORD}' - - 'GF_SMTP_FROM_ADDRESS=${SMTP_FROM}' - - 'GF_RENDERING_SERVER_URL=http://grafana_image_renderer:8081/render' - - 'GF_RENDERING_CALLBACK_URL=http://grafana:3000' - - 'GF_LOG_FILTERS=rendering:debug' - - 'GF_SERVER_ROOT_URL=${GF_ROOT}' - - 'GF_SERVER_DOMAIN=${GF_DOMAIN}' - - 'GF_INSTALL_PLUGINS=grafana-clock-panel,grafana-worldmap-panel' - - 'GF_AUTH_PROXY_ENABLED=true' - - 'GF_AUTH_PROXY_HEADER_NAME=Remote-User' - - 'GF_AUTH_PROXY_HEADERS=Name:Remote-Name Email:Remote-Email' - networks: - - proxy - - grafana - user: "1000:1000" - depends_on: - - grafana_image_renderer - - grafana_image_renderer: - image: grafana/grafana-image-renderer - container_name: grafana_image_renderer - restart: unless-stopped - networks: - - grafana - - influxdb: - image: influxdb:1.8 - container_name: influxdb - restart: unless-stopped - volumes: - - '/home/nick/configs/analytics/influxdb/influxdb.conf:/etc/influxdb/influxdb.conf' - - '/home/nick/configs/analytics/influxdb/db:/var/lib/influxdb' - environment: - - PUID=1000 - - PGID=1000 - networks: - - grafana - - telegraf: - image: telegraf:1.20.4 - container_name: telegraf - restart: unless-stopped - volumes: - - '/:/hostfs:ro' - - '/etc:/hostfs/etc:ro' - - '/proc:/hostfs/proc:ro' - - '/sys:/hostfs/sys:ro' - - '/var:/hostfs/var:ro' - - '/run:/hostfs/run:ro' - - '/var/run/docker.sock:/var/run/docker.sock' - - '/home/nick/configs/analytics/telegraf/telegraf.conf:/etc/telegraf/telegraf.conf:ro' - - '/home/nick/configs/analytics/telegraf/hostnet.sh:/etc/telegraf/hostnet.sh' - environment: - - HOST_ETC=/hostfs/etc - - HOST_PROC=/hostfs/proc - - HOST_SYS=/hostfs/sys - - HOST_VAR=/hostfs/var - - HOST_RUN=/hostfs/run - - HOST_MOUNT_PREFIX=/hostfs - networks: - - grafana - - proxy - user: "1000:975" - depends_on: - - influxdb - - speedtest: - image: atribe/speedtest-for-influxdb-and-grafana - container_name: speedtest - restart: unless-stopped - volumes: - - '/home/nick/configs/analytics/speedtest/config.ini:/src/config.ini' - - '/home/nick/configs/analytics/speedtest/speedtest.py:/usr/local/lib/python3.7/site-packages/speedtest.py' - environment: - - PGID=1000 - - PUID=1000 - networks: - - grafana - depends_on: - - influxdb - - speedport-smart-reconnect: - image: registry.karaolidis.com/nikas36/speedport-smart-reconnect - container_name: speedport_smart_reconnect - restart: unless-stopped - environment: - - 'ROUTER_USERNAME=${ROUTER_USERNAME}' - - 'ROUTER_PASSWORD=${ROUTER_PASSWORD}' - networks: - - grafana - depends_on: - - grafana - - speedtest - - scrutiny: - image: ghcr.io/analogj/scrutiny:master-omnibus - container_name: scrutiny - restart: unless-stopped - volumes: - - '/home/nick/configs/analytics/scrutiny/config:/opt/scrutiny/config' - - '/home/nick/configs/analytics/scrutiny/influxdb2:/opt/scrutiny/influxdb' - - '/run/udev:/run/udev:ro' - environment: - - 'PUID=1000' - - 'PGID=1000' - - 'TZ=Europe/Athens' - - 'COLLECTOR_API_ENDPOINT=http://localhost:8080/storage' - devices: - - /dev/sda:/dev/sda - - /dev/sdb:/dev/sdb - - /dev/sdc:/dev/sdc - - /dev/sdd:/dev/sdd - - /dev/sde:/dev/sde - cap_add: - - SYS_RAWIO - - SYS_ADMIN - networks: - - proxy - - uptime-kuma: - image: louislam/uptime-kuma - container_name: uptime_kuma - restart: unless-stopped - volumes: - - '/home/nick/configs/analytics/uptime-kuma:/app/data' - networks: - - proxy - dns: - - 1.1.1.1 - - 1.0.0.1 - - goaccess: - image: registry.karaolidis.com/nikas36/goaccess-docker - container_name: goaccess - restart: unless-stopped - volumes: - - '/home/nick/configs/analytics/goaccess/config:/config' - - '/home/nick/configs/analytics/goaccess/GeoLite2-City.mmdb:/GeoLite2-City.mmdb' - - '/home/nick/configs/routing/nginx/log:/opt/log:ro' - environment: - - 'PGID=1000' - - 'PUID=1000' - - 'TZ=Europe/Athens' - networks: - - proxy - -networks: - grafana: - name: grafana - proxy: - external: true - name: proxy diff --git a/authelia/docker-compose.yml b/authelia/docker-compose.yml new file mode 100644 index 0000000..5baa668 --- /dev/null +++ b/authelia/docker-compose.yml @@ -0,0 +1,36 @@ +version: '3.9' + +services: + authelia: + image: authelia/authelia + restart: unless-stopped + environment: + - TZ=Europe/Athens + volumes: + - /home/nick/configs/authelia:/config + healthcheck: + disable: true + networks: + - default + - routing + user: 1000:1000 + + db: + image: postgres + restart: unless-stopped + environment: + - POSTGRES_USER=authelia + - POSTGRES_PASSWORD=authelia + - POSTGRES_DB=authelia + volumes: + - /home/nick/configs/authelia/db:/var/lib/postgresql/data + user: 1000:1000 + + redis: + image: redis + restart: unless-stopped + +networks: + routing: + external: true + name: routing diff --git a/code-server/docker-compose.yml b/code-server/docker-compose.yml new file mode 100644 index 0000000..b4508c6 --- /dev/null +++ b/code-server/docker-compose.yml @@ -0,0 +1,21 @@ +version: '3.9' + +services: + vscode: + image: codercom/code-server + restart: unless-stopped + environment: + - DOCKER_USER=nick + volumes: + - /home/nick/configs/code-server:/home/coder/.config + - /mnt/storage/private/nick/development:/home/coder/dev + - /var/run/docker.sock:/var/run/docker.sock + networks: + - default + - routing + user: '1000:1000' + +networks: + routing: + external: true + name: routing diff --git a/commento/docker-compose.yml b/commento/docker-compose.yml new file mode 100644 index 0000000..f74ad3d --- /dev/null +++ b/commento/docker-compose.yml @@ -0,0 +1,38 @@ +version: '3.9' + +services: + commento: + image: caroga/commentoplusplus + restart: unless-stopped + environment: + COMMENTO_ORIGIN: 'https://stats.karaolidis.com/comments/' + COMMENTO_CDN_PREFIX: 'https://stats.karaolidis.com/comments/' + COMMENTO_PORT: 8080 + COMMENTO_POSTGRES: postgres://postgres:postgres@db:5432/commento?sslmode=disable + COMMENTO_SMTP_HOST: '${SMTP_HOST}' + COMMENTO_SMTP_PORT: '${SMTP_PORT}' + COMMENTO_SMTP_USERNAME: '${SMTP_USER}' + COMMENTO_SMTP_PASSWORD: '${SMTP_PASSWORD}' + COMMENTO_SMTP_FROM_ADDRESS: '${SMTP_FROM}' + COMMENTO_FORBID_NEW_OWNERS: 'true' + networks: + - default + - routing + depends_on: + - db + + db: + image: postgres:13.4 + restart: unless-stopped + environment: + POSTGRES_DB: commento + POSTGRES_USER: postgres + POSTGRES_PASSWORD: postgres + volumes: + - '/home/nick/configs/commento:/var/lib/postgresql/data' + user: '1000:1000' + +networks: + routing: + external: true + name: routing \ No newline at end of file diff --git a/documents/docker-compose.yml b/documents/docker-compose.yml deleted file mode 100644 index 918afcf..0000000 --- a/documents/docker-compose.yml +++ /dev/null @@ -1,162 +0,0 @@ -version: '3.9' - -services: - outline: - image: outlinewiki/outline - container_name: outline - restart: unless-stopped - command: sh -c "yarn sequelize:migrate --env production-ssl-disabled && yarn start" - environment: - - SECRET_KEY=${OUTLINE_SECRET_KEY} - - UTILS_SECRET=${OUTLINE_UTILS_SECRET} - - DATABASE_URL=postgres://outline:outline@outline_db:5432/outline - - DATABASE_URL_TEST=postgres://outline:outline@outline_db:5432/outline-test - - PGSSLMODE=disable - - REDIS_URL=redis://outline_broker:6379 - - URL=${OUTLINE_URL} - - PORT=${OUTLINE_PORT} - - AWS_ACCESS_KEY_ID=${MINIO_ID} - - AWS_SECRET_ACCESS_KEY=${MINIO_SECRET} - - AWS_REGION=us-east-1 - - AWS_S3_UPLOAD_BUCKET_URL=${MINIO_URL} - - AWS_S3_UPLOAD_BUCKET_NAME=outline - - AWS_S3_UPLOAD_MAX_SIZE=26214400 - - AWS_S3_FORCE_PATH_STYLE=true - - AWS_S3_ACL=private - - OIDC_CLIENT_ID=${OIDC_ID} - - OIDC_CLIENT_SECRET=${OIDC_SECRET} - - OIDC_AUTH_URI=${OIDC_AUTH_URI} - - OIDC_TOKEN_URI=${OIDC_TOKEN_URI} - - OIDC_USERINFO_URI=${OIDC_USERINFO_URI} - - OIDC_USERNAME_CLAIM=nickname - - OIDC_DISPLAY_NAME=GitLab - - OIDC_SCOPES=openid profile email - - FORCE_HTTPS=false - - ENABLE_UPDATES=true - - SMTP_HOST=${SMTP_HOST} - - SMTP_PORT=${SMTP_PORT} - - SMTP_USERNAME=${SMTP_USERNAME} - - SMTP_PASSWORD=${SMTP_PASSWORD} - - SMTP_FROM_EMAIL=${SMTP_FROM_EMAIL} - - SMTP_SECURE=${SMTP_SECURE} - depends_on: - - outline_db - - outline_broker - networks: - - outline - - proxy - - outline_db: - image: postgres - container_name: outline_db - restart: unless-stopped - environment: - - POSTGRES_USER=outline - - POSTGRES_PASSWORD=outline - - POSTGRES_DB=outline - volumes: - - /home/nick/configs/documents/outline/db:/var/lib/postgresql/data - networks: - - outline - user: 1000:1000 - - outline_broker: - image: redis - container_name: outline_broker - restart: unless-stopped - networks: - - outline - - outline_s3: - image: minio/minio - container_name: outline_s3 - restart: unless-stopped - command: "minio server /data" - environment: - - MINIO_ROOT_USER=${MINIO_ID} - - MINIO_ROOT_PASSWORD=${MINIO_SECRET} - - MINIO_BROWSER=off - volumes: - - /home/nick/configs/documents/outline/s3:/data - networks: - - outline - - proxy - user: 1000:1000 - - outline_s3_init: - image: minio/mc - container_name: outline_s3_init - entrypoint: > - /bin/sh -c " - until (/usr/bin/mc config host add minio http://outline_s3:9000 ${MINIO_ID} ${MINIO_SECRET}) do - echo 'Waiting for minio...' && sleep 1; - done; - /usr/bin/mc mb minio/outline; - /usr/bin/mc policy set download minio/outline; - exit 0; - " - networks: - - outline - depends_on: - - outline_s3 - - paperless: - image: ghcr.io/paperless-ngx/paperless-ngx - container_name: paperless - restart: unless-stopped - depends_on: - - paperless_db - - paperless_broker - healthcheck: - disable: true - volumes: - - '/mnt/storage/configs/documents/paperless/data:/usr/src/paperless/data' - - '/mnt/storage/configs/documents/paperless/media:/usr/src/paperless/media' - - '/mnt/storage/configs/documents/paperless/export:/usr/src/paperless/export' - - '/mnt/storage/configs/documents/paperless/consume:/usr/src/paperless/consume' - environment: - - PAPERLESS_URL=${PAPERLESS_URL} - - PAPERLESS_REDIS=redis://paperless_broker:6379 - - PAPERLESS_DBHOST=paperless_db - - USERMAP_UID=1000 - - USERMAP_GID=1000 - - PAPERLESS_OCR_LANGUAGES=ell - - PAPERLESS_SECRET_KEY=${PAPERLESS_SECRET_KEY} - - PAPERLESS_TIME_ZONE=Europe/Athens - - PAPERLESS_OCR_LANGUAGE=eng - - PAPERLESS_OCR_ROTATE_PAGES_THRESHOLD=15 - - PAPERLESS_FORCE_SCRIPT_NAME=/paperless - - PAPERLESS_ENABLE_HTTP_REMOTE_USER=true - networks: - - paperless - - proxy - - paperless_broker: - image: redis:6.0 - container_name: paperless_broker - restart: unless-stopped - networks: - - paperless - - paperless_db: - image: postgres:13 - container_name: paperless_db - restart: unless-stopped - volumes: - - '/home/nick/configs/documents/paperless/db:/var/lib/postgresql/data' - environment: - POSTGRES_DB: paperless - POSTGRES_USER: paperless - POSTGRES_PASSWORD: paperless - networks: - - paperless - user: '1000:1000' - -networks: - outline: - name: outline - paperless: - name: paperless - proxy: - external: true - name: proxy diff --git a/download/docker-compose.yml b/download/docker-compose.yml deleted file mode 100644 index efdb589..0000000 --- a/download/docker-compose.yml +++ /dev/null @@ -1,44 +0,0 @@ -version: '3.9' - -services: - transmission: - image: linuxserver/transmission - container_name: transmission - restart: unless-stopped - environment: - - PGID=1000 - - PUID=1000 - - TZ=Europe/Athens - - TRANSMISSION_WEB_HOME=/flood-for-transmission/ - volumes: - - '/home/nick/configs/download/transmission:/config' - - '/mnt/storage/public:/data' - ports: - - '51413:51413' - - '51413:51413/udp' - networks: - - proxy - - tor - - pyload: - image: linuxserver/pyload - container_name: pyload - restart: unless-stopped - environment: - - PUID=1000 - - PGID=1000 - - TZ=Europe/Athens - volumes: - - '/home/nick/configs/download/pyload:/config' - - '/mnt/storage/public:/data' - networks: - - proxy - - tor - -networks: - proxy: - external: true - name: proxy - tor: - external: true - name: tor diff --git a/flame/docker-compose.yml b/flame/docker-compose.yml new file mode 100644 index 0000000..a27ba45 --- /dev/null +++ b/flame/docker-compose.yml @@ -0,0 +1,20 @@ +version: '3.9' + +services: + flame: + image: pawelmalak/flame + restart: unless-stopped + volumes: + - /home/nick/configs/flame:/app/data + environment: + - UID=1000 + - GID=1000 + - PASSWORD=${FLAME_PASSWORD} + networks: + - default + - routing + +networks: + routing: + external: true + name: routing diff --git a/gaming/docker-compose.yml b/gaming/docker-compose.yml index f575d2a..d0339b5 100644 --- a/gaming/docker-compose.yml +++ b/gaming/docker-compose.yml @@ -1,9 +1,8 @@ version: "3.9" services: - mc_ftb_0: + mc-ftb-0: image: itzg/minecraft-server:java11-openj9 - container_name: mc_ftb_0 restart: unless-stopped volumes: - '/home/nick/configs/gaming/mc_ftb_0:/data' @@ -17,7 +16,7 @@ services: - OVERRIDE_SERVER_PROPERTIES=true - DIFFICULTY=normal - ENABLE_WHITELIST=TRUE - - OPS=${OPS} + - OPS=Nikas36 - ENABLE_COMMAND_BLOCK=TRUE - SPAWN_PROTECTION=0 - LEVEL_TYPE=BIOMESOPLENTY @@ -35,9 +34,8 @@ services: tty: true stdin_open: true - ksp_0: + ksp-0: image: lmpsrv-custom:0.28.0 - container_name: ksp_0 restart: unless-stopped volumes: - '/home/nick/configs/gaming/ksp_0/config:/LMPServer/Config' @@ -49,4 +47,3 @@ services: - 8800:8800/udp - 8900:8900 user: "1000:1000" - diff --git a/ghost/docker-compose.yml b/ghost/docker-compose.yml index a21935c..1d05a88 100644 --- a/ghost/docker-compose.yml +++ b/ghost/docker-compose.yml @@ -3,85 +3,36 @@ version: '3.9' services: ghost: image: ghost - container_name: ghost restart: unless-stopped volumes: - - '/home/nick/configs/ghost/ghost:/var/lib/ghost/content' + - '/home/nick/configs/ghost:/var/lib/ghost/content' environment: - url: ${URL} + url: https://blog.karaolidis.com + database__client: mysql + database__connection__host: db + database__connection__user: ghost + database__connection__database: ghost + database__connection__password: ghost networks: - - proxy - - ghost + - default + - routing + depends_on: + - db user: '1000:1000' - commento: - image: caroga/commentoplusplus - container_name: commento + db: + image: mysql restart: unless-stopped - environment: - COMMENTO_ORIGIN: 'https://stats.karaolidis.com/comments/' - COMMENTO_CDN_PREFIX: 'https://stats.karaolidis.com/comments/' - COMMENTO_PORT: 8080 - COMMENTO_POSTGRES: postgres://postgres:postgres@commento_db:5432/commento?sslmode=disable - COMMENTO_SMTP_HOST: '${SMTP_HOST}' - COMMENTO_SMTP_PORT: '${SMTP_PORT}' - COMMENTO_SMTP_USERNAME: '${SMTP_USER}' - COMMENTO_SMTP_PASSWORD: '${SMTP_PASSWORD}' - COMMENTO_SMTP_FROM_ADDRESS: '${SMTP_FROM}' - COMMENTO_FORBID_NEW_OWNERS: 'true' - networks: - - proxy - - ghost - depends_on: - - commento_db - - commento_db: - image: postgres:13.4 - container_name: commento_db - restart: unless-stopped - environment: - POSTGRES_DB: commento - POSTGRES_USER: postgres - POSTGRES_PASSWORD: postgres volumes: - - '/home/nick/configs/ghost/commento:/var/lib/postgresql/data' - networks: - - ghost - user: '1000:1000' - - umami: - image: ghcr.io/mikecao/umami:postgresql-latest - container_name: umami - restart: unless-stopped + - '/home/nick/configs/ghost/db:/var/lib/mysql' environment: - DATABASE_URL: postgresql://umami:umami@umami_db:5432/umami - DATABASE_TYPE: postgresql - HASH_SALT: ${SALT} - TRACKER_SCRIPT_NAME: u - depends_on: - - umami_db - networks: - - proxy - - ghost - - umami_db: - image: postgres:13.4 - container_name: umami_db - restart: unless-stopped - environment: - POSTGRES_DB: umami - POSTGRES_USER: umami - POSTGRES_PASSWORD: umami - volumes: - - '/home/nick/configs/ghost/umami/schema.postgresql.sql:/docker-entrypoint-initdb.d/schema.postgresql.sql:ro' - - '/home/nick/configs/ghost/umami/data:/var/lib/postgresql/data' - networks: - - ghost + MYSQL_USER: ghost + MYSQL_DATABASE: ghost + MYSQL_PASSWORD: ghost + MYSQL_RANDOM_ROOT_PASSWORD: yes user: '1000:1000' networks: - proxy: + routing: external: true - name: proxy - ghost: - name: ghost + name: routing diff --git a/devops/docker-compose.yml b/gitlab/docker-compose.yml similarity index 67% rename from devops/docker-compose.yml rename to gitlab/docker-compose.yml index a7da667..2169938 100644 --- a/devops/docker-compose.yml +++ b/gitlab/docker-compose.yml @@ -1,24 +1,8 @@ version: '3.9' services: - vscode: - image: codercom/code-server - container_name: vscode - restart: unless-stopped - environment: - - DOCKER_USER=nick - volumes: - - /home/nick/configs/devops/code:/home/coder/.config - - /mnt/storage/private/nick/development:/home/coder/dev - - /var/run/docker.sock:/var/run/docker.sock - networks: - - proxy - - devops - user: '1000:1000' - gitlab: image: gitlab/gitlab-ce - container_name: gitlab hostname: ${GITLAB_HOSTNAME} restart: unless-stopped environment: @@ -48,30 +32,25 @@ services: gitlab_rails['smtp_tls'] = false gitlab_rails['smtp_openssl_verify_mode'] = 'peer' volumes: - - '/home/nick/configs/devops/gitlab/config:/etc/gitlab' - - '/home/nick/configs/devops/gitlab/logs:/var/log/gitlab' - - '/home/nick/configs/devops/gitlab/data:/var/opt/gitlab' - - '/home/nick/configs/devops/gitlab/registry:/etc/registry' + - '/home/nick/configs/gitlab/config:/etc/gitlab' + - '/home/nick/configs/gitlab/logs:/var/log/gitlab' + - '/home/nick/configs/gitlab/data:/var/opt/gitlab' + - '/home/nick/configs/gitlab/registry:/etc/registry' - '/home/nick/configs/routing/nginx/certs/letsencrypt/live/karaolidis.com/fullchain.pem:/etc/gitlab/ssl/fullchain.pem:ro' - '/home/nick/configs/routing/nginx/certs/letsencrypt/live/karaolidis.com/privkey.pem:/etc/gitlab/ssl/privkey.pem:ro' networks: - - devops - - proxy + - default + - routing shm_size: '256m' - gitlab_runner: + runner: image: gitlab/gitlab-runner - container_name: gitlab_runner restart: unless-stopped volumes: - - '/home/nick/configs/devops/gitlab/runner:/etc/gitlab-runner' + - '/home/nick/configs/gitlab/runner:/etc/gitlab-runner' - '/var/run/docker.sock:/var/run/docker.sock' - networks: - - devops networks: - proxy: + routing: external: true - name: proxy - devops: - name: devops + name: routing diff --git a/goaccess/docker-compose.yml b/goaccess/docker-compose.yml new file mode 100644 index 0000000..46257dd --- /dev/null +++ b/goaccess/docker-compose.yml @@ -0,0 +1,22 @@ +version: '3.9' + +services: + goaccess: + image: registry.karaolidis.com/nikas36/goaccess-docker + restart: unless-stopped + volumes: + - '/home/nick/configs/goaccess/config:/config' + - '/home/nick/configs/goaccess/GeoLite2-City.mmdb:/GeoLite2-City.mmdb' + - '/home/nick/configs/routing/nginx/log:/opt/log:ro' + environment: + - 'PGID=1000' + - 'PUID=1000' + - 'TZ=Europe/Athens' + networks: + - default + - routing + +networks: + routing: + external: true + name: routing diff --git a/grafana/docker-compose.yml b/grafana/docker-compose.yml new file mode 100644 index 0000000..a215cbb --- /dev/null +++ b/grafana/docker-compose.yml @@ -0,0 +1,98 @@ +version: '3.9' + +services: + grafana: + image: grafana/grafana:8.4.5 + restart: unless-stopped + volumes: + - '/home/nick/configs/grafana/grafana:/var/lib/grafana' + environment: + - 'GF_SECURITY_ALLOW_EMBEDDING=true' + - 'GF_SMTP_ENABLED=true' + - 'GF_SMTP_HOST=${SMTP_HOST}' + - 'GF_SMTP_USER=${SMTP_USER}' + - 'GF_SMTP_PASSWORD=${SMTP_PASSWORD}' + - 'GF_SMTP_FROM_ADDRESS=${SMTP_FROM}' + - 'GF_RENDERING_SERVER_URL=http://grafana-image-renderer:8081/render' + - 'GF_RENDERING_CALLBACK_URL=http://grafana:3000' + - 'GF_LOG_FILTERS=rendering:debug' + - 'GF_SERVER_ROOT_URL=${GF_ROOT}' + - 'GF_SERVER_DOMAIN=${GF_DOMAIN}' + - 'GF_INSTALL_PLUGINS=grafana-clock-panel,grafana-worldmap-panel' + - 'GF_AUTH_PROXY_ENABLED=true' + - 'GF_AUTH_PROXY_HEADER_NAME=Remote-User' + - 'GF_AUTH_PROXY_HEADERS=Name:Remote-Name Email:Remote-Email' + networks: + - default + - routing + user: "1000:1000" + depends_on: + - grafana_image_renderer + + image-renderer: + image: grafana/grafana-image-renderer + restart: unless-stopped + + influxdb: + image: influxdb:1.8 + restart: unless-stopped + volumes: + - '/home/nick/configs/grafana/influxdb/influxdb.conf:/etc/influxdb/influxdb.conf' + - '/home/nick/configs/grafana/influxdb/db:/var/lib/influxdb' + environment: + - PUID=1000 + - PGID=1000 + + telegraf: + image: telegraf:1.20.4 + restart: unless-stopped + volumes: + - '/:/hostfs:ro' + - '/etc:/hostfs/etc:ro' + - '/proc:/hostfs/proc:ro' + - '/sys:/hostfs/sys:ro' + - '/var:/hostfs/var:ro' + - '/run:/hostfs/run:ro' + - '/var/run/docker.sock:/var/run/docker.sock' + - '/home/nick/configs/grafana/telegraf/telegraf.conf:/etc/telegraf/telegraf.conf:ro' + - '/home/nick/configs/grafana/telegraf/hostnet.sh:/etc/telegraf/hostnet.sh' + environment: + - HOST_ETC=/hostfs/etc + - HOST_PROC=/hostfs/proc + - HOST_SYS=/hostfs/sys + - HOST_VAR=/hostfs/var + - HOST_RUN=/hostfs/run + - HOST_MOUNT_PREFIX=/hostfs + networks: + - default + - routing + user: "1000:975" + depends_on: + - influxdb + + speedtest: + image: atribe/speedtest-for-influxdb-and-grafana + restart: unless-stopped + volumes: + - '/home/nick/configs/grafana/speedtest/config.ini:/src/config.ini' + - '/home/nick/configs/grafana/speedtest/speedtest.py:/usr/local/lib/python3.7/site-packages/speedtest.py' + environment: + - PGID=1000 + - PUID=1000 + depends_on: + - influxdb + + speedport-smart-reconnect: + image: registry.karaolidis.com/nikas36/speedport-smart-reconnect + restart: unless-stopped + environment: + - 'ROUTER_USERNAME=${ROUTER_USERNAME}' + - 'ROUTER_PASSWORD=${ROUTER_PASSWORD}' + depends_on: + - grafana + - speedtest + +networks: + routing: + external: true + name: routing diff --git a/home/docker-compose.yml b/littlelink/docker-compose.yml similarity index 83% rename from home/docker-compose.yml rename to littlelink/docker-compose.yml index 1b4d2cb..21a9911 100644 --- a/home/docker-compose.yml +++ b/littlelink/docker-compose.yml @@ -1,22 +1,8 @@ version: '3.9' services: - flame: - image: pawelmalak/flame - container_name: flame - restart: unless-stopped - volumes: - - /home/nick/configs/home/flame:/app/data - environment: - - UID=1000 - - GID=1000 - - PASSWORD=${FLAME_PASSWORD} - networks: - - proxy - - littlelink-server: + littlelink: image: timothystewart6/littlelink-server - container_name: littlelink restart: unless-stopped environment: - META_TITLE=Nick Karaolidis @@ -56,9 +42,9 @@ services: - SOUND_CLOUD=https://soundcloud.com/nikas36 - STEAM=https://steamcommunity.com/profiles/76561198118267119 networks: - - proxy + - routing networks: - proxy: + routing: external: true - name: proxy + name: routing diff --git a/media/docker-compose.yml b/media/docker-compose.yml index 66e1824..620a112 100644 --- a/media/docker-compose.yml +++ b/media/docker-compose.yml @@ -3,7 +3,6 @@ version: '3.9' services: plex: image: plexinc/pms-docker - container_name: plex restart: unless-stopped hostname: 'jupiter' environment: @@ -22,8 +21,8 @@ services: devices: - '/dev/dri:/dev/dri' networks: - - proxy - - media + - default + - routing ports: - '32400:32400/tcp' - '3005:3005/tcp' @@ -35,26 +34,8 @@ services: - '32413:32413/udp' - '32414:32414/udp' - jellyfin: - image: jellyfin/jellyfin - container_name: jellyfin - restart: "unless-stopped" - environment: - - "JELLYFIN_PublishedServerUrl=${URL}" - volumes: - - /home/nick/configs/media/jellyfin/config:/config - - /home/nick/configs/media/jellyfin/cache:/cache - - /mnt/storage/public/media:/media:ro - devices: - - '/dev/dri:/dev/dri' - networks: - - proxy - - media - user: 1000:1000 - ombi: image: linuxserver/ombi - container_name: ombi restart: unless-stopped environment: - 'PUID=1000' @@ -64,12 +45,11 @@ services: volumes: - /home/nick/configs/media/ombi:/config networks: - - proxy - - media + - default + - routing tautulli: image: tautulli/tautulli - container_name: tautulli restart: unless-stopped environment: - 'PUID=1000' @@ -78,12 +58,11 @@ services: volumes: - /home/nick/configs/media/tautulli:/config networks: - - proxy - - media + - default + - routing prowlarr: image: linuxserver/prowlarr:develop - container_name: prowlarr restart: unless-stopped environment: - PUID=1000 @@ -93,11 +72,10 @@ services: - '/home/nick/configs/media/prowlarr:/config' - '/mnt/storage/public:/data' networks: - - proxy + - routing radarr: image: linuxserver/radarr - container_name: radarr restart: unless-stopped environment: - PGID=1000 @@ -107,13 +85,12 @@ services: - '/home/nick/configs/media/radarr:/config' - '/mnt/storage/public:/data' networks: - - proxy + - routing depends_on: - prowlarr sonarr: image: linuxserver/sonarr - container_name: sonarr restart: unless-stopped environment: - PGID=1000 @@ -123,13 +100,12 @@ services: - '/home/nick/configs/media/sonarr:/config' - '/mnt/storage/public:/data' networks: - - proxy + - routing depends_on: - prowlarr lidarr: image: linuxserver/lidarr - container_name: lidarr restart: unless-stopped environment: - PGID=1000 @@ -139,13 +115,12 @@ services: - '/home/nick/configs/media/lidarr:/config' - '/mnt/storage/public:/data' networks: - - proxy + - routing depends_on: - prowlarr bazarr: image: linuxserver/bazarr - container_name: bazarr restart: unless-stopped environment: - PGID=1000 @@ -155,25 +130,23 @@ services: - '/home/nick/configs/media/bazarr:/config' - '/mnt/storage/public:/data' networks: - - proxy + - routing depends_on: - radarr - sonarr - subs_upload: + subs-upload: image: registry.karaolidis.com/nikas36/plex-subtitle-uploader - container_name: subs_uploader restart: unless-stopped environment: - "PLEX_URL=http://plex:32400" - "SUBDOMAIN=/subs-upload" - "PLEX_TOKEN=${PLEX_TOKEN}" networks: - - proxy + - default + - routing networks: - proxy: + routing: external: true - name: proxy - media: - name: media + name: routing diff --git a/cloud/docker-compose.yml b/nextcloud/docker-compose.yml similarity index 58% rename from cloud/docker-compose.yml rename to nextcloud/docker-compose.yml index 49f72ec..a0fc7be 100644 --- a/cloud/docker-compose.yml +++ b/nextcloud/docker-compose.yml @@ -3,10 +3,9 @@ version: '3.9' services: nextcloud: image: linuxserver/nextcloud - container_name: nextcloud restart: unless-stopped volumes: - - '/home/nick/configs/cloud/nc_conf:/config' + - '/home/nick/configs/nextcloud/nc_conf:/config' - '/mnt/storage/configs/nextcloud/data:/data' - '/mnt/storage/public:/public' - '/mnt/storage/private:/private' @@ -15,31 +14,24 @@ services: - PGID=1000 - TZ=Europe/Greece networks: - - nextcloud - - proxy + - default + - routing depends_on: - - nextcloud_db + - db - nextcloud_db: + db: image: mariadb:10.5 - container_name: nextcloud_db restart: unless-stopped volumes: - - '/home/nick/configs/cloud/nc_db:/var/lib/mysql' + - '/home/nick/configs/nextcloud/nc_db:/var/lib/mysql' environment: - - MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASS} + - MYSQL_RANDOM_ROOT_PASSWORD=yes - MYSQL_USER=nextcloud - MYSQL_PASSWORD=nextcloud - MYSQL_DATABASE=nextcloud - networks: - - nextcloud user: '1000:1000' networks: - nextcloud: - name: nextcloud - yourls: - name: yourls - proxy: + routing: external: true - name: proxy + name: routing diff --git a/outline/docker-compose.yml b/outline/docker-compose.yml new file mode 100644 index 0000000..3abacf9 --- /dev/null +++ b/outline/docker-compose.yml @@ -0,0 +1,96 @@ +version: '3.9' + +services: + outline: + image: outlinewiki/outline + restart: unless-stopped + command: sh -c "yarn sequelize:migrate --env production-ssl-disabled && yarn start" + environment: + - SECRET_KEY=${OUTLINE_SECRET_KEY} + - UTILS_SECRET=${OUTLINE_UTILS_SECRET} + - DATABASE_URL=postgres://outline:outline@db:5432/outline + - DATABASE_URL_TEST=postgres://outline:outline@db:5432/outline-test + - PGSSLMODE=disable + - REDIS_URL=redis://redis:6379 + - URL=${OUTLINE_URL} + - PORT=${OUTLINE_PORT} + - AWS_ACCESS_KEY_ID=${MINIO_ID} + - AWS_SECRET_ACCESS_KEY=${MINIO_SECRET} + - AWS_REGION=us-east-1 + - AWS_S3_UPLOAD_BUCKET_URL=${MINIO_URL} + - AWS_S3_UPLOAD_BUCKET_NAME=outline + - AWS_S3_UPLOAD_MAX_SIZE=26214400 + - AWS_S3_FORCE_PATH_STYLE=true + - AWS_S3_ACL=private + - OIDC_CLIENT_ID=${OIDC_ID} + - OIDC_CLIENT_SECRET=${OIDC_SECRET} + - OIDC_AUTH_URI=${OIDC_AUTH_URI} + - OIDC_TOKEN_URI=${OIDC_TOKEN_URI} + - OIDC_USERINFO_URI=${OIDC_USERINFO_URI} + - OIDC_USERNAME_CLAIM=nickname + - OIDC_DISPLAY_NAME=GitLab + - OIDC_SCOPES=openid profile email + - FORCE_HTTPS=false + - ENABLE_UPDATES=true + - SMTP_HOST=${SMTP_HOST} + - SMTP_PORT=${SMTP_PORT} + - SMTP_USERNAME=${SMTP_USERNAME} + - SMTP_PASSWORD=${SMTP_PASSWORD} + - SMTP_FROM_EMAIL=${SMTP_FROM_EMAIL} + - SMTP_SECURE=${SMTP_SECURE} + depends_on: + - db + - redis + networks: + - default + - routing + + db: + image: postgres + restart: unless-stopped + environment: + - POSTGRES_USER=outline + - POSTGRES_PASSWORD=outline + - POSTGRES_DB=outline + volumes: + - /home/nick/configs/outline/db:/var/lib/postgresql/data + user: 1000:1000 + + redis: + image: redis + restart: unless-stopped + + outline-s3: + image: minio/minio + restart: unless-stopped + command: "minio server /data" + environment: + - MINIO_ROOT_USER=${MINIO_ID} + - MINIO_ROOT_PASSWORD=${MINIO_SECRET} + - MINIO_BROWSER=off + volumes: + - /home/nick/configs/outline/s3:/data + networks: + - default + - routing + user: 1000:1000 + + s3-init: + image: minio/mc + container_name: outline-s3-init + entrypoint: > + /bin/sh -c " + until (/usr/bin/mc config host add minio http://outline-s3:9000 ${MINIO_ID} ${MINIO_SECRET}) do + echo 'Waiting for minio...' && sleep 1; + done; + /usr/bin/mc mb minio/outline; + /usr/bin/mc policy set download minio/outline; + exit 0; + " + depends_on: + - outline-s3 + +networks: + routing: + external: true + name: routing diff --git a/paperless/docker-compose.yml b/paperless/docker-compose.yml new file mode 100644 index 0000000..34d621d --- /dev/null +++ b/paperless/docker-compose.yml @@ -0,0 +1,52 @@ +version: '3.9' + +services: + paperless: + image: ghcr.io/paperless-ngx/paperless-ngx + restart: unless-stopped + depends_on: + - db + - redis + healthcheck: + disable: true + volumes: + - '/mnt/storage/configs/paperless/data:/usr/src/paperless/data' + - '/mnt/storage/configs/paperless/media:/usr/src/paperless/media' + - '/mnt/storage/configs/paperless/export:/usr/src/paperless/export' + - '/mnt/storage/configs/paperless/consume:/usr/src/paperless/consume' + environment: + - PAPERLESS_URL=${PAPERLESS_URL} + - PAPERLESS_REDIS=redis://redis:6379 + - PAPERLESS_DBHOST=db + - USERMAP_UID=1000 + - USERMAP_GID=1000 + - PAPERLESS_OCR_LANGUAGES=ell + - PAPERLESS_SECRET_KEY=${PAPERLESS_SECRET_KEY} + - PAPERLESS_TIME_ZONE=Europe/Athens + - PAPERLESS_OCR_LANGUAGE=eng + - PAPERLESS_OCR_ROTATE_PAGES_THRESHOLD=15 + - PAPERLESS_FORCE_SCRIPT_NAME=/paperless + - PAPERLESS_ENABLE_HTTP_REMOTE_USER=true + networks: + - default + - routing + + redis: + image: redis:6.0 + restart: unless-stopped + + db: + image: postgres:13 + restart: unless-stopped + volumes: + - '/home/nick/configs/paperless/db:/var/lib/postgresql/data' + environment: + POSTGRES_DB: paperless + POSTGRES_USER: paperless + POSTGRES_PASSWORD: paperless + user: '1000:1000' + +networks: + routing: + external: true + name: routing diff --git a/social/docker-compose.yml b/peercalls/docker-compose.yml similarity index 72% rename from social/docker-compose.yml rename to peercalls/docker-compose.yml index 5a1bd99..6678013 100644 --- a/social/docker-compose.yml +++ b/peercalls/docker-compose.yml @@ -3,14 +3,14 @@ version: '3.9' services: peercalls: image: peercalls/peercalls - container_name: peercalls restart: unless-stopped environment: - "PEERCALLS_BASE_URL=/p2p" networks: - - proxy + - default + - routing networks: - proxy: + routing: external: true - name: proxy + name: routing diff --git a/routing/docker-compose.yml b/routing/docker-compose.yml index 6bbcf43..ff85646 100644 --- a/routing/docker-compose.yml +++ b/routing/docker-compose.yml @@ -3,7 +3,6 @@ version: '3.9' services: nginx: image: nginx - container_name: nginx restart: unless-stopped command: nginx -c /config/nginx.conf volumes: @@ -12,35 +11,26 @@ services: ports: - 80:80 - 443:443 - networks: - - proxy extra_hosts: - "host.docker.internal:host-gateway" certbot: image: certbot/dns-cloudflare - container_name: certbot restart: unless-stopped entrypoint: "/bin/sh -c \"trap exit TERM; while :; do certbot renew --post-hook 'chown -R 1000:1000 /etc/letsencrypt'; sleep 12h & wait $${!}; done;\"" volumes: - /home/nick/configs/routing/nginx/certs/letsencrypt:/etc/letsencrypt - networks: - - proxy - cloudflare_argo_tunnel: + cloudflare-argo-tunnel: image: cloudflare/cloudflared - container_name: cloudflared restart: unless-stopped volumes: - '/home/nick/configs/routing/cloudflared:/etc/cloudflared' - networks: - - proxy command: tunnel run --url https://nginx:443 --no-tls-verify jupiter user: '1000:1000' - cloudflare_ddns: + cloudflare-ddns: image: oznu/cloudflare-ddns - container_name: cloudflare_ddns restart: unless-stopped environment: - API_KEY=${CF_API_KEY} @@ -49,99 +39,10 @@ services: - PROXIED=false network_mode: bridge - authelia: - image: authelia/authelia - container_name: authelia - restart: unless-stopped - environment: - - TZ=Europe/Athens - volumes: - - /home/nick/configs/routing/auth:/config - healthcheck: - disable: true - networks: - - proxy - - authelia - user: 1000:1000 - - authelia_db: - image: postgres - container_name: authelia_db - restart: unless-stopped - environment: - - POSTGRES_USER=authelia - - POSTGRES_PASSWORD=authelia - - POSTGRES_DB=authelia - volumes: - - /home/nick/configs/routing/auth/db:/var/lib/postgresql/data - networks: - - authelia - user: 1000:1000 - - authelia_broker: - image: redis - container_name: authelia_broker - restart: unless-stopped - networks: - - authelia - - theme_park: - image: ghcr.io/gilbn/theme.park - container_name: theme_park - restart: unless-stopped - environment: - - PUID=1000 - - PGID=1000 - - TZ=Europe/London - volumes: - - /home/nick/configs/routing/theme_park:/config - networks: - - proxy - whoami: image: containous/whoami - container_name: whoami restart: unless-stopped - networks: - - proxy - - yourls: - image: registry.karaolidis.com/nikas36/yourls-plugins - container_name: yourls - restart: unless-stopped - environment: - - 'YOURLS_DB_HOST=yourls_db:3306' - - 'YOURLS_DB_USER=yourls' - - 'YOURLS_DB_PASS=yourls' - - 'YOURLS_SITE=${YOURLS_URL}' - - 'YOURLS_USER=${YOURLS_USER}' - - 'YOURLS_PASS=${YOURLS_PASS}' - networks: - - yourls - - proxy - depends_on: - - yourls_db - - yourls_db: - image: mysql - container_name: yourls_db - restart: unless-stopped - volumes: - - '/home/nick/configs/routing/yourls:/var/lib/mysql' - environment: - - 'MYSQL_RANDOM_ROOT_PASSWORD=yes' - - 'MYSQL_USER=yourls' - - 'MYSQL_PASSWORD=yourls' - - 'MYSQL_DATABASE=yourls' - networks: - - yourls - user: '1000:1000' networks: - proxy: - external: true - name: proxy - authelia: - name: authelia - yourls: - name: yourls + default: + name: routing diff --git a/samba/docker-compose.yml b/samba/docker-compose.yml index 83311ea..3f631b3 100644 --- a/samba/docker-compose.yml +++ b/samba/docker-compose.yml @@ -3,7 +3,6 @@ version: '3.9' services: samba: image: dperson/samba - container_name: samba restart: unless-stopped environment: - 'TZ=Europe/Athens' diff --git a/scrutiny/docker-compose.yml b/scrutiny/docker-compose.yml new file mode 100644 index 0000000..9dc6ccd --- /dev/null +++ b/scrutiny/docker-compose.yml @@ -0,0 +1,32 @@ +version: '3.9' + +services: + scrutiny: + image: ghcr.io/analogj/scrutiny:master-omnibus + restart: unless-stopped + volumes: + - '/home/nick/configs/scrutiny/config:/opt/scrutiny/config' + - '/home/nick/configs/scrutiny/influxdb2:/opt/scrutiny/influxdb' + - '/run/udev:/run/udev:ro' + environment: + - 'PUID=1000' + - 'PGID=1000' + - 'TZ=Europe/Athens' + - 'COLLECTOR_API_ENDPOINT=http://localhost:8080/storage' + devices: + - /dev/sda:/dev/sda + - /dev/sdb:/dev/sdb + - /dev/sdc:/dev/sdc + - /dev/sdd:/dev/sdd + - /dev/sde:/dev/sde + cap_add: + - SYS_RAWIO + - SYS_ADMIN + networks: + - default + - routing + +networks: + routing: + external: true + name: routing diff --git a/tor/docker-compose.yml b/tor/docker-compose.yml new file mode 100644 index 0000000..cf2a3f1 --- /dev/null +++ b/tor/docker-compose.yml @@ -0,0 +1,17 @@ +version: '3.9' + +services: + tor: + image: dperson/torproxy + restart: unless-stopped + environment: + - TZ=Europe/Athens + - USERID=1000 + - GROUPID=1000 + ports: + - '8118:8118' + - '9050:9050' + +networks: + default: + name: tor diff --git a/transmission/docker-compose.yml b/transmission/docker-compose.yml new file mode 100644 index 0000000..8b21418 --- /dev/null +++ b/transmission/docker-compose.yml @@ -0,0 +1,25 @@ +version: '3.9' + +services: + transmission: + image: linuxserver/transmission + restart: unless-stopped + environment: + - PGID=1000 + - PUID=1000 + - TZ=Europe/Athens + - TRANSMISSION_WEB_HOME=/flood-for-transmission/ + volumes: + - '/home/nick/configs/transmission:/config' + - '/mnt/storage/public:/data' + ports: + - '51413:51413' + - '51413:51413/udp' + networks: + - default + - routing + +networks: + routing: + external: true + name: routing diff --git a/umami/docker-compose.yml b/umami/docker-compose.yml new file mode 100644 index 0000000..a388f41 --- /dev/null +++ b/umami/docker-compose.yml @@ -0,0 +1,33 @@ +version: '3.9' + +services: + umami: + image: ghcr.io/mikecao/umami:postgresql-latest + restart: unless-stopped + environment: + DATABASE_URL: postgresql://umami:umami@db:5432/umami + DATABASE_TYPE: postgresql + HASH_SALT: ${SALT} + TRACKER_SCRIPT_NAME: u + depends_on: + - db + networks: + - default + - routing + + db: + image: postgres:13.4 + restart: unless-stopped + environment: + POSTGRES_DB: umami + POSTGRES_USER: umami + POSTGRES_PASSWORD: umami + volumes: + - '/home/nick/configs/umami/schema.postgresql.sql:/docker-entrypoint-initdb.d/schema.postgresql.sql:ro' + - '/home/nick/configs/umami/data:/var/lib/postgresql/data' + user: '1000:1000' + +networks: + routing: + external: true + name: routing diff --git a/uptime-kuma/docker-compose.yml b/uptime-kuma/docker-compose.yml new file mode 100644 index 0000000..9674572 --- /dev/null +++ b/uptime-kuma/docker-compose.yml @@ -0,0 +1,19 @@ +version: '3.9' + +services: + uptime-kuma: + image: louislam/uptime-kuma + restart: unless-stopped + volumes: + - '/home/nick/configs/uptime-kuma:/app/data' + networks: + - default + - routing + dns: + - 1.1.1.1 + - 1.0.0.1 + +networks: + routing: + external: true + name: routing diff --git a/vault/docker-compose.yml b/vaultwarden/docker-compose.yml similarity index 66% rename from vault/docker-compose.yml rename to vaultwarden/docker-compose.yml index ea919d7..564e25f 100644 --- a/vault/docker-compose.yml +++ b/vaultwarden/docker-compose.yml @@ -3,17 +3,16 @@ version: '3.9' services: vaultwarden: image: vaultwarden/server - container_name: vaultwarden restart: unless-stopped volumes: - - '/home/nick/configs/vault:/data' + - '/home/nick/configs/vaultwarden:/data' environment: - 'ADMIN_TOKEN=${ADMIN_TOKEN}' networks: - - proxy + - routing user: "1000:1000" networks: - proxy: + routing: external: true - name: proxy + name: routing diff --git a/vpn/docker-compose.yml b/vpn/docker-compose.yml index d629a0b..1802c5e 100644 --- a/vpn/docker-compose.yml +++ b/vpn/docker-compose.yml @@ -1,8 +1,8 @@ version: '3.9' + services: openvpn: image: kylemanna/openvpn - container_name: openvpn restart: unless-stopped volumes: - '/home/nick/configs/vpn/openvpn:/etc/openvpn' @@ -11,14 +11,11 @@ services: - PGID=1000 ports: - '1194:1194/udp' - networks: - - vpn cap_add: - NET_ADMIN - + wireguard: image: weejewel/wg-easy - container_name: wireguard restart: unless-stopped volumes: - '/home/nick/configs/vpn/wireguard:/etc/wireguard' @@ -28,8 +25,8 @@ services: ports: - '51820:51820/udp' networks: - - vpn - - proxy + - default + - routing cap_add: - NET_ADMIN - SYS_MODULE @@ -37,29 +34,7 @@ services: - net.ipv4.ip_forward=1 - net.ipv4.conf.all.src_valid_mark=1 - tor: - image: dperson/torproxy - container_name: tor - restart: unless-stopped - environment: - - TZ=Europe/Athens - - USERID=1000 - - GROUPID=1000 - ports: - - '8118:8118' - - '9050:9050' - networks: - - tor - networks: - vpn: - name: vpn - ipam: - driver: default - config: - - subnet: "172.20.0.0/16" - tor: - name: tor - proxy: + routing: external: true - name: proxy + name: routing diff --git a/yourls/docker-compose.yml b/yourls/docker-compose.yml new file mode 100644 index 0000000..a69cc90 --- /dev/null +++ b/yourls/docker-compose.yml @@ -0,0 +1,35 @@ +version: '3.9' + +services: + yourls: + image: registry.karaolidis.com/nikas36/yourls-plugins + restart: unless-stopped + environment: + - 'YOURLS_DB_HOST=db:3306' + - 'YOURLS_DB_USER=yourls' + - 'YOURLS_DB_PASS=yourls' + - 'YOURLS_SITE=${YOURLS_URL}' + - 'YOURLS_USER=${YOURLS_USER}' + - 'YOURLS_PASS=${YOURLS_PASS}' + networks: + - default + - routing + depends_on: + - yourls-db + + db: + image: mysql + restart: unless-stopped + volumes: + - '/home/nick/configs/yourls:/var/lib/mysql' + environment: + - 'MYSQL_RANDOM_ROOT_PASSWORD=yes' + - 'MYSQL_USER=yourls' + - 'MYSQL_PASSWORD=yourls' + - 'MYSQL_DATABASE=yourls' + user: '1000:1000' + +networks: + routing: + external: true + name: routing