diff --git a/__swarm/bookstack/bookstack-swarm.yml b/__swarm/bookstack/bookstack-swarm.yml index d42bacf..0b74f7a 100644 --- a/__swarm/bookstack/bookstack-swarm.yml +++ b/__swarm/bookstack/bookstack-swarm.yml @@ -1,20 +1,23 @@ -version: '3.9' +volumes: + bookstack_db_data: + driver: local + bookstack_app_data: + driver: local services: app: env_file: - stack.env image: ${DOCKER_REGISTRY:-}lscr.io/linuxserver/bookstack:latest ports: - - 6875:80 + - target: 80 + published: 6875 + protocol: tcp + mode: ingress volumes: - - /share/docker_data/bookstack/bookstack_app_data:/config + - bookstack_app_data:/config deploy: - mode: replicated - replicas: 1 - restart_policy: - condition: any labels: - com.centurylinklabs.watchtower.enable: true + com.centurylinklabs.watchtower.enable: 'true' homepage.container: bookstack-app-1 homepage.description: Books homepage.group: Utilities @@ -22,9 +25,10 @@ services: homepage.icon: bookstack.png homepage.name: Bookstack homepage.server: my-docker-swarm - homepage.weight: 1 - wud.watch: true - wud.watch.digest: true + homepage.weight: '1' + wud.watch: 'true' + wud.watch.digest: 'true' + replicas: 1 placement: constraints: - node.role == manager @@ -36,15 +40,13 @@ services: PUID: 0 image: ${DOCKER_REGISTRY:-}lscr.io/linuxserver/mariadb volumes: - - /share/docker_data/bookstack/bookstack_db_data:/config + - bookstack_db_data:/config deploy: - mode: replicated - replicas: 1 - restart_policy: - condition: any labels: - wud.watch: true - wud.watch.digest: true + wud.watch: 'true' + wud.watch.digest: 'true' + replicas: 1 placement: constraints: - node.role == manager +version: '2' diff --git a/__swarm/gitea/gitea-swarm.yml b/__swarm/gitea/gitea-swarm.yml index b832ffa..d206e39 100644 --- a/__swarm/gitea/gitea-swarm.yml +++ b/__swarm/gitea/gitea-swarm.yml @@ -1,43 +1,48 @@ -version: '3.9' +networks: + gitea: + external: false services: server: environment: - USER_UID: '1000' - USER_GID: '1000' + USER_UID: 1000 + USER_GID: 1000 ROOT_URL: https://gitea.sectorq.eu - ENABLE_PASSWORD_SIGNIN_FORM: 'false' - DISABLE_REGISTRATION: 'true' + ENABLE_PASSWORD_SIGNIN_FORM: false + DISABLE_REGISTRATION: true image: ${DOCKER_REGISTRY:-}gitea/gitea:latest networks: - gitea ports: - - 3000:3000 - - '222:22' + - target: 3000 + published: 3000 + protocol: tcp + mode: ingress + - target: 22 + published: 222 + protocol: tcp + mode: ingress volumes: - /share/docker_data/gitea:/data - /etc/timezone:/etc/timezone:ro - /etc/localtime:/etc/localtime:ro deploy: - mode: replicated - replicas: 1 - restart_policy: - condition: any labels: com.centurylinklabs.watchtower.enable: 'true' homepage.container: gitea - homepage.description: version control server - homepage.group: utilities - homepage.href: https://${appname}.sectorq.eu - homepage.icon: ${appname}.png - homepage.name: gitea - homepage.server: my-docker + homepage.description: Version control server + homepage.group: Utilities + homepage.href: https://${APPNAME}.sectorq.eu + homepage.icon: ${APPNAME}.png + homepage.name: Gitea + homepage.server: my-docker-swarm homepage.weight: '1' - homepage.widget.key: ${token} - homepage.widget.type: ${appname} - homepage.widget.url: https://${appname}.sectorq.eu + homepage.widget.key: ${TOKEN} + homepage.widget.type: ${APPNAME} + homepage.widget.url: https://${APPNAME}.sectorq.eu homepage.widget.version: '2' wud.watch: 'true' wud.watch.digest: 'true' + replicas: 1 placement: constraints: - node.role == manager @@ -46,7 +51,7 @@ services: environment: CONFIG_FILE: /config/config.yaml GITEA_INSTANCE_URL: https://gitea.sectorq.eu/ - GITEA_RUNNER_REGISTRATION_TOKEN: 8nmkqjhkvywltmnff2o9vs0tzo70ufhsqpvg6ymb + GITEA_RUNNER_REGISTRATION_TOKEN: 8nmKqJhkvYwltmNfF2o9vs0tzo70ufHSQpVg6ymb GITEA_RUNNER_NAME: jaydee GITEA_RUNNER_LABELS: jaydee volumes: @@ -54,16 +59,10 @@ services: - /share/docker_data/gitea-runner/data:/data - /var/run/docker.sock:/var/run/docker.sock deploy: - mode: replicated - replicas: 1 - restart_policy: - condition: any labels: wud.watch: 'true' wud.watch.digest: 'true' + replicas: 1 placement: constraints: - node.role == manager -networks: - gitea: - external: false diff --git a/__swarm/n8n/n8n-swarm.yml b/__swarm/n8n/n8n-swarm.yml index 13fb7af..edefd96 100644 --- a/__swarm/n8n/n8n-swarm.yml +++ b/__swarm/n8n/n8n-swarm.yml @@ -1,7 +1,4 @@ version: '3' -volumes: - n8n-data: - driver: local services: n8n: image: ${DOCKER_REGISTRY:-}n8nio/n8n:latest @@ -27,7 +24,7 @@ services: stop_grace_period: 60s deploy: labels: - homepage.container: n8n_n8n + homepage.container: n8n homepage.description: Workflow management homepage.group: Utils homepage.href: https://${APPNAME}.sectorq.eu @@ -40,3 +37,6 @@ services: placement: constraints: - node.role == manager +volumes: + n8n-data: + driver: local diff --git a/grafana/docker-compose.yml b/grafana/docker-compose.yml index 672e3b4..01366ac 100755 --- a/grafana/docker-compose.yml +++ b/grafana/docker-compose.yml @@ -3,6 +3,8 @@ networks: loki: null volumes: loki-data: + grafana-data: + grafana-certs: services: grafana: container_name: grafana diff --git a/yaml_convert2.py b/yaml_convert2.py index 454e174..3ff9f19 100644 --- a/yaml_convert2.py +++ b/yaml_convert2.py @@ -68,12 +68,16 @@ def convert_compose_to_swarm(data): deploy.setdefault("labels", {}) if isinstance(svc["labels"], dict): deploy["labels"].update(ensure_labels_as_string(svc["labels"])) + + elif isinstance(svc["labels"], list): for label in svc["labels"]: key, value = label.split("=", 1) deploy["labels"][key] = value.lower() if value.lower() in ["true", "false"] else str(value) del svc["labels"] - + labels = deploy.get("labels", {}) + if "homepage.server" in labels and labels["homepage.server"] == "my-docker": + labels["homepage.server"] = "my-docker-swarm" # 4) Default replicas deploy.setdefault("replicas", 1)