chore: remove sablier, scrapy, and vpn stacks
Remove three unused stacks and related configuration: - Removed sablier, scrapy, vpn from compose includes - Deleted sablier/compose.yaml, scrapy/compose.yaml, vpn/compose.yaml - Removed scrapy-backup from restic config - Removed scrapy volume mounts from restic compose - Removed SABLIER, SCRAPY, VPN env vars from arty.yml - Cleaned up sexy/uploads directory 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
19
arty.yml
@@ -19,11 +19,6 @@ envs:
|
||||
CORE_REDIS_PORT: 6379
|
||||
CORE_REDIS_IMAGE: redis:7-alpine
|
||||
CORE_POSTGRES_IMAGE: postgres:16-alpine
|
||||
# VPN
|
||||
VPN_TRAEFIK_ENABLED: true
|
||||
VPN_COMPOSE_PROJECT_NAME: vpn
|
||||
VPN_DOCKER_IMAGE: ghcr.io/wg-easy/wg-easy:latest
|
||||
VPN_TRAEFIK_HOST: vpn.pivoine.art
|
||||
# Track
|
||||
TRACK_TRAEFIK_ENABLED: true
|
||||
TRACK_COMPOSE_PROJECT_NAME: track
|
||||
@@ -64,17 +59,6 @@ envs:
|
||||
TANDOOR_GUNICORN_MEDIA: 0
|
||||
TANDOOR_COMMENT_PREF_DEFAULT: 1
|
||||
TANDOOR_SHOPPING_MIN_AUTOSYNC_INTERVAL: 5
|
||||
# Scrapy
|
||||
SCRAPY_TRAEFIK_ENABLED: true
|
||||
SCRAPY_COMPOSE_PROJECT_NAME: scrapy
|
||||
SCRAPY_SCRAPYD_IMAGE: vimagick/scrapyd
|
||||
SCRAPY_IMAGE: vimagick/scrapyd
|
||||
SCRAPY_SCRAPYRT_IMAGE: vimagick/scrapyd
|
||||
SCRAPY_UI_IMAGE: ghcr.io/valknarness/scrapy-ui:main
|
||||
SCRAPY_TRAEFIK_HOST: scrapy.pivoine.art
|
||||
SCRAPY_SCRAPYD_PORT: 6800
|
||||
SCRAPY_SCRAPYRT_PORT: 9080
|
||||
SCRAPY_UI_SCRAPYD_URL: https://scrapy.pivoine.art/scrapyd
|
||||
# n8n
|
||||
N8N_TRAEFIK_ENABLED: true
|
||||
N8N_COMPOSE_PROJECT_NAME: n8n
|
||||
@@ -158,9 +142,6 @@ envs:
|
||||
PROXY_COMPOSE_PROJECT_NAME: proxy
|
||||
PROXY_DOCKER_IMAGE: traefik:latest
|
||||
PROXY_TRAEFIK_HOST: proxy.pivoine.art
|
||||
# Sablier
|
||||
SABLIER_COMPOSE_PROJECT_NAME: sablier
|
||||
SABLIER_VERSION: latest
|
||||
# AI Stack
|
||||
AI_TRAEFIK_ENABLED: true
|
||||
AI_COMPOSE_PROJECT_NAME: ai
|
||||
|
||||
@@ -4,7 +4,6 @@ include:
|
||||
- sexy/compose.yaml
|
||||
- mattermost/compose.yaml
|
||||
- tandoor/compose.yaml
|
||||
- scrapy/compose.yaml
|
||||
- n8n/compose.yaml
|
||||
- links/compose.yaml
|
||||
- vault/compose.yaml
|
||||
@@ -15,7 +14,6 @@ include:
|
||||
- restic/compose.yaml
|
||||
- netdata/compose.yaml
|
||||
- umami/compose.yaml
|
||||
- sablier/compose.yaml
|
||||
- proxy/compose.yaml
|
||||
- watch/compose.yaml
|
||||
- media/compose.yaml
|
||||
|
||||
@@ -24,8 +24,6 @@ services:
|
||||
- backup_mattermost_plugins:/volumes/mattermost_plugins:ro
|
||||
- backup_tandoor_staticfiles:/volumes/tandoor_staticfiles:ro
|
||||
- backup_tandoor_mediafiles:/volumes/tandoor_mediafiles:ro
|
||||
- backup_scrapyd_data:/volumes/scrapyd_data:ro
|
||||
- backup_scrapy_code:/volumes/scrapy_code:ro
|
||||
- backup_n8n_data:/volumes/n8n_data:ro
|
||||
- backup_filestash_data:/volumes/filestash_data:ro
|
||||
- backup_linkwarden_data:/volumes/linkwarden_data:ro
|
||||
@@ -108,12 +106,6 @@ volumes:
|
||||
backup_tandoor_mediafiles:
|
||||
name: tandoor_mediafiles
|
||||
external: true
|
||||
backup_scrapyd_data:
|
||||
name: scrapy_scrapyd_data
|
||||
external: true
|
||||
backup_scrapy_code:
|
||||
name: scrapy_scrapy_code
|
||||
external: true
|
||||
backup_n8n_data:
|
||||
name: n8n_n8n_data
|
||||
external: true
|
||||
|
||||
@@ -131,24 +131,6 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "scrapy-backup",
|
||||
"repo": "hidrive-backup",
|
||||
"paths": [
|
||||
"/volumes/scrapyd_data",
|
||||
"/volumes/scrapy_code"
|
||||
],
|
||||
"schedule": {
|
||||
"cron": "0 6 * * *"
|
||||
},
|
||||
"retention": {
|
||||
"policyTimeBucketed": {
|
||||
"daily": 7,
|
||||
"weekly": 4,
|
||||
"monthly": 3
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "n8n-backup",
|
||||
"repo": "hidrive-backup",
|
||||
|
||||
@@ -1,21 +0,0 @@
|
||||
services:
|
||||
sablier:
|
||||
image: acouvreur/sablier:${SABLIER_VERSION:-latest}
|
||||
container_name: ${SABLIER_COMPOSE_PROJECT_NAME}_app
|
||||
restart: unless-stopped
|
||||
command:
|
||||
- start
|
||||
- --provider.name=docker
|
||||
volumes:
|
||||
- /var/run/docker.sock:/var/run/docker.sock:ro
|
||||
networks:
|
||||
- compose_network
|
||||
environment:
|
||||
TZ: ${TIMEZONE:-Europe/Berlin}
|
||||
labels:
|
||||
- 'traefik.enable=false'
|
||||
|
||||
networks:
|
||||
compose_network:
|
||||
name: ${NETWORK_NAME}
|
||||
external: true
|
||||
@@ -1,97 +0,0 @@
|
||||
services:
|
||||
scrapyd:
|
||||
image: ${SCRAPY_SCRAPYD_IMAGE:-vimagick/scrapyd}
|
||||
container_name: ${SCRAPY_COMPOSE_PROJECT_NAME}_scrapyd
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
- scrapyd_data:/var/lib/scrapyd
|
||||
- /usr/local/lib/python3.9/dist-packages
|
||||
environment:
|
||||
TZ: ${TIMEZONE:-Europe/Berlin}
|
||||
networks:
|
||||
- compose_network
|
||||
labels:
|
||||
- 'traefik.enable=${SCRAPY_TRAEFIK_ENABLED}'
|
||||
- 'traefik.http.middlewares.${SCRAPY_COMPOSE_PROJECT_NAME}-scrapyd-redirect-web-secure.redirectscheme.scheme=https'
|
||||
- 'traefik.http.routers.${SCRAPY_COMPOSE_PROJECT_NAME}-scrapyd-web.middlewares=${SCRAPY_COMPOSE_PROJECT_NAME}-scrapyd-redirect-web-secure'
|
||||
- 'traefik.http.routers.${SCRAPY_COMPOSE_PROJECT_NAME}-scrapyd-web.rule=Host(`${SCRAPY_TRAEFIK_HOST}`) && PathPrefix(`/scrapyd`)'
|
||||
- 'traefik.http.routers.${SCRAPY_COMPOSE_PROJECT_NAME}-scrapyd-web.entrypoints=web'
|
||||
- 'traefik.http.routers.${SCRAPY_COMPOSE_PROJECT_NAME}-scrapyd-web.priority=100'
|
||||
- 'traefik.http.routers.${SCRAPY_COMPOSE_PROJECT_NAME}-scrapyd-web-secure.rule=Host(`${SCRAPY_TRAEFIK_HOST}`) && PathPrefix(`/scrapyd`)'
|
||||
- 'traefik.http.routers.${SCRAPY_COMPOSE_PROJECT_NAME}-scrapyd-web-secure.tls.certresolver=resolver'
|
||||
- 'traefik.http.routers.${SCRAPY_COMPOSE_PROJECT_NAME}-scrapyd-web-secure.entrypoints=web-secure'
|
||||
- 'traefik.http.routers.${SCRAPY_COMPOSE_PROJECT_NAME}-scrapyd-web-secure.priority=100'
|
||||
- 'traefik.http.middlewares.${SCRAPY_COMPOSE_PROJECT_NAME}-scrapyd-stripprefix.stripprefix.prefixes=/scrapyd'
|
||||
- 'traefik.http.middlewares.${SCRAPY_COMPOSE_PROJECT_NAME}-scrapyd-auth.basicauth.users=${AUTH_USERS}'
|
||||
- 'traefik.http.middlewares.${SCRAPY_COMPOSE_PROJECT_NAME}-scrapyd-web-secure-compress.compress=true'
|
||||
- 'traefik.http.routers.${SCRAPY_COMPOSE_PROJECT_NAME}-scrapyd-web-secure.middlewares=${SCRAPY_COMPOSE_PROJECT_NAME}-scrapyd-auth,${SCRAPY_COMPOSE_PROJECT_NAME}-scrapyd-stripprefix,${SCRAPY_COMPOSE_PROJECT_NAME}-scrapyd-web-secure-compress'
|
||||
- 'traefik.http.services.${SCRAPY_COMPOSE_PROJECT_NAME}-scrapyd-web-secure.loadbalancer.server.port=6800'
|
||||
- 'traefik.docker.network=${NETWORK_NAME}'
|
||||
- 'com.centurylinklabs.watchtower.enable=${WATCHTOWER_LABEL_ENABLE}'
|
||||
|
||||
scrapy:
|
||||
image: ${SCRAPY_IMAGE:-vimagick/scrapyd}
|
||||
container_name: ${SCRAPY_COMPOSE_PROJECT_NAME}_scrapy
|
||||
command: bash
|
||||
volumes:
|
||||
- scrapy_code:/code
|
||||
working_dir: /code
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
TZ: ${TIMEZONE:-Europe/Berlin}
|
||||
networks:
|
||||
- compose_network
|
||||
|
||||
scrapyrt:
|
||||
image: ${SCRAPY_SCRAPYRT_IMAGE:-vimagick/scrapyd}
|
||||
container_name: ${SCRAPY_COMPOSE_PROJECT_NAME}_scrapyrt
|
||||
command: scrapyrt -i 0.0.0.0 -p 9080
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- "${SCRAPY_SCRAPYRT_PORT:-9080}:9080"
|
||||
volumes:
|
||||
- scrapy_code:/code
|
||||
working_dir: /code
|
||||
environment:
|
||||
TZ: ${TIMEZONE:-Europe/Berlin}
|
||||
networks:
|
||||
- compose_network
|
||||
|
||||
scrapy_ui:
|
||||
image: ${SCRAPY_UI_IMAGE:-ghcr.io/valknarness/scrapy-ui:main}
|
||||
container_name: ${SCRAPY_COMPOSE_PROJECT_NAME}_ui
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
TZ: ${TIMEZONE:-Europe/Berlin}
|
||||
NODE_ENV: production
|
||||
SCRAPYD_URL: ${SCRAPY_UI_SCRAPYD_URL:-https://scrapy.pivoine.art/scrapyd}
|
||||
SCRAPYD_USERNAME: ${SCRAPY_UI_SCRAPYD_USERNAME}
|
||||
SCRAPYD_PASSWORD: ${SCRAPY_UI_SCRAPYD_PASSWORD}
|
||||
networks:
|
||||
- compose_network
|
||||
labels:
|
||||
- 'traefik.enable=${SCRAPY_TRAEFIK_ENABLED}'
|
||||
- 'traefik.http.middlewares.${SCRAPY_COMPOSE_PROJECT_NAME}-ui-redirect-web-secure.redirectscheme.scheme=https'
|
||||
- 'traefik.http.routers.${SCRAPY_COMPOSE_PROJECT_NAME}-ui-web.middlewares=${SCRAPY_COMPOSE_PROJECT_NAME}-ui-redirect-web-secure'
|
||||
- 'traefik.http.routers.${SCRAPY_COMPOSE_PROJECT_NAME}-ui-web.rule=Host(`${SCRAPY_TRAEFIK_HOST}`)'
|
||||
- 'traefik.http.routers.${SCRAPY_COMPOSE_PROJECT_NAME}-ui-web.entrypoints=web'
|
||||
- 'traefik.http.routers.${SCRAPY_COMPOSE_PROJECT_NAME}-ui-web-secure.rule=Host(`${SCRAPY_TRAEFIK_HOST}`)'
|
||||
- 'traefik.http.routers.${SCRAPY_COMPOSE_PROJECT_NAME}-ui-web-secure.tls.certresolver=resolver'
|
||||
- 'traefik.http.routers.${SCRAPY_COMPOSE_PROJECT_NAME}-ui-web-secure.entrypoints=web-secure'
|
||||
- 'traefik.http.middlewares.${SCRAPY_COMPOSE_PROJECT_NAME}-ui-auth.basicauth.users=${AUTH_USERS}'
|
||||
- 'traefik.http.middlewares.${SCRAPY_COMPOSE_PROJECT_NAME}-ui-web-secure-compress.compress=true'
|
||||
- 'traefik.http.routers.${SCRAPY_COMPOSE_PROJECT_NAME}-ui-web-secure.middlewares=${SCRAPY_COMPOSE_PROJECT_NAME}-ui-auth,${SCRAPY_COMPOSE_PROJECT_NAME}-ui-web-secure-compress'
|
||||
- 'traefik.http.services.${SCRAPY_COMPOSE_PROJECT_NAME}-ui-web-secure.loadbalancer.server.port=3000'
|
||||
- 'traefik.docker.network=${NETWORK_NAME}'
|
||||
- 'com.centurylinklabs.watchtower.enable=${WATCHTOWER_LABEL_ENABLE}'
|
||||
|
||||
volumes:
|
||||
scrapyd_data:
|
||||
name: ${SCRAPY_COMPOSE_PROJECT_NAME}_scrapyd_data
|
||||
scrapy_code:
|
||||
name: ${SCRAPY_COMPOSE_PROJECT_NAME}_scrapy_code
|
||||
|
||||
networks:
|
||||
compose_network:
|
||||
name: ${NETWORK_NAME}
|
||||
external: true
|
||||
|
Before Width: | Height: | Size: 15 KiB |
|
Before Width: | Height: | Size: 1.7 MiB |
|
Before Width: | Height: | Size: 1.8 KiB |
|
Before Width: | Height: | Size: 1.6 MiB |
|
Before Width: | Height: | Size: 1.7 KiB |
|
Before Width: | Height: | Size: 1.7 MiB |
|
Before Width: | Height: | Size: 1.7 KiB |
|
Before Width: | Height: | Size: 1.7 MiB |
|
Before Width: | Height: | Size: 1.8 KiB |
|
Before Width: | Height: | Size: 1.8 MiB |
|
Before Width: | Height: | Size: 1.9 KiB |
|
Before Width: | Height: | Size: 1.6 MiB |
|
Before Width: | Height: | Size: 2.2 KiB |
|
Before Width: | Height: | Size: 1.5 MiB |
|
Before Width: | Height: | Size: 34 KiB |
|
Before Width: | Height: | Size: 1.6 KiB |
|
Before Width: | Height: | Size: 24 KiB |
|
Before Width: | Height: | Size: 944 B |
|
Before Width: | Height: | Size: 2.6 KiB |
|
Before Width: | Height: | Size: 1.6 MiB |
|
Before Width: | Height: | Size: 2.1 KiB |
|
Before Width: | Height: | Size: 1.4 MiB |
|
Before Width: | Height: | Size: 22 KiB |
|
Before Width: | Height: | Size: 860 KiB |
|
Before Width: | Height: | Size: 1.9 KiB |
|
Before Width: | Height: | Size: 15 KiB |
|
Before Width: | Height: | Size: 1.5 MiB |
|
Before Width: | Height: | Size: 18 KiB |
|
Before Width: | Height: | Size: 16 KiB |
|
Before Width: | Height: | Size: 2.1 KiB |
|
Before Width: | Height: | Size: 9.5 KiB |
|
Before Width: | Height: | Size: 7.0 MiB |
|
Before Width: | Height: | Size: 120 KiB |
|
Before Width: | Height: | Size: 28 KiB |
|
Before Width: | Height: | Size: 4.5 MiB |
|
Before Width: | Height: | Size: 34 KiB |
|
Before Width: | Height: | Size: 7.8 KiB |
|
Before Width: | Height: | Size: 716 KiB |
|
Before Width: | Height: | Size: 1.6 KiB |
|
Before Width: | Height: | Size: 11 KiB |
|
Before Width: | Height: | Size: 280 KiB |
|
Before Width: | Height: | Size: 20 KiB |
|
Before Width: | Height: | Size: 5.5 KiB |
@@ -1,67 +0,0 @@
|
||||
services:
|
||||
vpn:
|
||||
image: ${VPN_DOCKER_IMAGE}
|
||||
container_name: ${VPN_COMPOSE_PROJECT_NAME}_app
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
- etc_wireguard:/etc/wireguard
|
||||
- /lib/modules:/lib/modules:ro
|
||||
ports:
|
||||
- "${VPN_WG_PORT:-51820}:51820/udp"
|
||||
- "${VPN_APP_PORT:-51821}:51821/tcp"
|
||||
cap_add:
|
||||
- NET_ADMIN
|
||||
- SYS_MODULE
|
||||
sysctls:
|
||||
- net.ipv4.ip_forward=1
|
||||
- net.ipv4.conf.all.src_valid_mark=1
|
||||
# - net.ipv6.conf.all.disable_ipv6=0
|
||||
# - net.ipv6.conf.all.forwarding=1
|
||||
# - net.ipv6.conf.default.forwarding=1
|
||||
environment:
|
||||
TZ: ${TIMEZONE:-Europe/Amsterdam}
|
||||
WG_HOST: ${VPN_WG_HOST}
|
||||
WG_PORT: ${VPN_WG_PORT}
|
||||
PORT: ${VPN_APP_PORT}
|
||||
WG_DEVICE: eth0
|
||||
PASSWORD: ${VPN_PASSWORD}
|
||||
LANG: ${VPN_LANG:-en}
|
||||
UI_TRAFFIC_STATS: ${VPN_UI_TRAFFIC_STATS:-true}
|
||||
UI_CHART_TYPE: ${VPN_UI_CHART_TYPE:-0}
|
||||
WG_ALLOWED_IPS: ${VPN_WG_ALLOWED_IPS:-0.0.0.0/0, ::/0}
|
||||
WG_DEFAULT_ADDRESS: ${VPN_WG_DEFAULT_ADDRESS:-10.8.0.x}
|
||||
WG_DEFAULT_DNS: ${VPN_WG_DEFAULT_DNS:-1.1.1.1}
|
||||
WG_PERSISTENT_KEEPALIVE: ${VPN_WG_PERSISTENT_KEEPALIVE:-25}
|
||||
WG_MTU: ${VPN_WG_MTU:-1420}
|
||||
networks:
|
||||
wg:
|
||||
ipv4_address: 10.42.42.42
|
||||
ipv6_address: fdcc:ad94:bacf:61a3::2a
|
||||
compose_network:
|
||||
labels:
|
||||
- 'traefik.enable=${VPN_TRAEFIK_ENABLED:-true}'
|
||||
- 'traefik.http.middlewares.${VPN_COMPOSE_PROJECT_NAME}-redirect-web-secure.redirectscheme.scheme=https'
|
||||
- 'traefik.http.routers.${VPN_COMPOSE_PROJECT_NAME}-web.middlewares=${VPN_COMPOSE_PROJECT_NAME}-redirect-web-secure'
|
||||
- 'traefik.http.routers.${VPN_COMPOSE_PROJECT_NAME}-web.rule=Host(`${VPN_TRAEFIK_HOST}`)'
|
||||
- 'traefik.http.routers.${VPN_COMPOSE_PROJECT_NAME}-web.entrypoints=web'
|
||||
- 'traefik.http.routers.${VPN_COMPOSE_PROJECT_NAME}-web-secure.rule=Host(`${VPN_TRAEFIK_HOST}`)'
|
||||
- 'traefik.http.routers.${VPN_COMPOSE_PROJECT_NAME}-web-secure.tls.certresolver=resolver'
|
||||
- 'traefik.http.routers.${VPN_COMPOSE_PROJECT_NAME}-web-secure.entrypoints=web-secure'
|
||||
- 'traefik.http.middlewares.${VPN_COMPOSE_PROJECT_NAME}-web-secure-compress.compress=true'
|
||||
- 'traefik.http.routers.${VPN_COMPOSE_PROJECT_NAME}-web-secure.middlewares=${VPN_COMPOSE_PROJECT_NAME}-web-secure-compress'
|
||||
- 'traefik.http.services.${VPN_COMPOSE_PROJECT_NAME}-web-secure.loadbalancer.server.port=51821'
|
||||
- 'traefik.docker.network=${NETWORK_NAME}'
|
||||
|
||||
volumes:
|
||||
etc_wireguard:
|
||||
name: ${VPN_COMPOSE_PROJECT_NAME}_etc_wireguard
|
||||
|
||||
networks:
|
||||
wg:
|
||||
driver: bridge
|
||||
enable_ipv6: true
|
||||
ipam:
|
||||
driver: default
|
||||
config:
|
||||
- subnet: 10.42.42.0/24
|
||||
- subnet: fdcc:ad94:bacf:61a3::/64
|
||||