Port docker-compose resources and service details
This commit is contained in:
		
							
								
								
									
										78
									
								
								resources/docker-compose/_meta.yaml.j2
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										78
									
								
								resources/docker-compose/_meta.yaml.j2
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,78 @@
 | 
			
		||||
---
 | 
			
		||||
version: "{{ skylab_compose_version }}"
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
networks:
 | 
			
		||||
  meta:
 | 
			
		||||
    name: meta
 | 
			
		||||
    driver: overlay
 | 
			
		||||
    ipam:
 | 
			
		||||
      driver: default
 | 
			
		||||
      config:
 | 
			
		||||
        - subnet: {{ app.networks.ext }}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
volumes:
 | 
			
		||||
{% for key, value in app.volumes.items() %}
 | 
			
		||||
  meta-{{ key }}:
 | 
			
		||||
    name: datastore{{ value }}
 | 
			
		||||
    driver: glusterfs
 | 
			
		||||
{% endfor %}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
services:
 | 
			
		||||
  proxy:
 | 
			
		||||
    image: nginx:{{ app.versions.proxy }}
 | 
			
		||||
    hostname: proxy
 | 
			
		||||
    networks:
 | 
			
		||||
      - meta
 | 
			
		||||
    extra_hosts:
 | 
			
		||||
      - "dockerloopback:{{ app.settings.loopback_address }}"
 | 
			
		||||
    ports:
 | 
			
		||||
      - published: {{ app.ports.80 }}
 | 
			
		||||
        target: 80
 | 
			
		||||
        protocol: tcp
 | 
			
		||||
        mode: ingress
 | 
			
		||||
      - published: {{ app.ports.443 }}
 | 
			
		||||
        target: 443
 | 
			
		||||
        protocol: tcp
 | 
			
		||||
        mode: ingress
 | 
			
		||||
    volumes:
 | 
			
		||||
      - type: volume
 | 
			
		||||
        source: meta-nginx
 | 
			
		||||
        target: /etc/nginx
 | 
			
		||||
        read_only: true
 | 
			
		||||
      - type: volume
 | 
			
		||||
        source: meta-letsencrypt-config
 | 
			
		||||
        target: /etc/letsencrypt
 | 
			
		||||
        read_only: true
 | 
			
		||||
    deploy:
 | 
			
		||||
      replicas: 2
 | 
			
		||||
      placement:
 | 
			
		||||
        max_replicas_per_node: 1
 | 
			
		||||
 | 
			
		||||
  certbot:
 | 
			
		||||
    image: certbot/certbot:{{ app.versions.certbot }}
 | 
			
		||||
    hostname: certbot
 | 
			
		||||
    command: renew --standalone
 | 
			
		||||
    networks:
 | 
			
		||||
      - meta
 | 
			
		||||
    ports:
 | 
			
		||||
      - published: 8088  # This is hardcoded to avoid conflicts
 | 
			
		||||
        target: 80
 | 
			
		||||
        protocol: tcp
 | 
			
		||||
        mode: ingress
 | 
			
		||||
    volumes:
 | 
			
		||||
      - type: volume
 | 
			
		||||
        source: meta-letsencrypt-config
 | 
			
		||||
        target: /etc/letsencrypt
 | 
			
		||||
        read_only: false
 | 
			
		||||
      - type: volume
 | 
			
		||||
        source: meta-letsencrypt-data
 | 
			
		||||
        target: /var/lib/letsencrypt
 | 
			
		||||
        read_only: false
 | 
			
		||||
    deploy:
 | 
			
		||||
      replicas: 1
 | 
			
		||||
      restart_policy:
 | 
			
		||||
        condition: any
 | 
			
		||||
        delay: 24h
 | 
			
		||||
							
								
								
									
										53
									
								
								resources/docker-compose/adguard.yaml.j2
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										53
									
								
								resources/docker-compose/adguard.yaml.j2
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,53 @@
 | 
			
		||||
---
 | 
			
		||||
version: "{{ skylab_compose_version }}"
 | 
			
		||||
 | 
			
		||||
networks:
 | 
			
		||||
  adguard:
 | 
			
		||||
    name: adguard
 | 
			
		||||
    driver: overlay
 | 
			
		||||
    ipam:
 | 
			
		||||
      driver: default
 | 
			
		||||
      config:
 | 
			
		||||
        - subnet: "{{ app.networks.ext }}"
 | 
			
		||||
 | 
			
		||||
volumes:
 | 
			
		||||
{% for key, value in app.volumes.items() %}
 | 
			
		||||
  adguard-{{ key }}:
 | 
			
		||||
    name: datastore{{ value }}
 | 
			
		||||
    driver: glusterfs
 | 
			
		||||
{% endfor %}
 | 
			
		||||
 | 
			
		||||
services:
 | 
			
		||||
  server:
 | 
			
		||||
    image: adguard/adguardhome:{{ app.versions.server }}
 | 
			
		||||
    hostname: adguard
 | 
			
		||||
    networks:
 | 
			
		||||
      - adguard
 | 
			
		||||
    dns:
 | 
			
		||||
{% for server in app.settings.upstream %}
 | 
			
		||||
      - {{ server }}
 | 
			
		||||
{% endfor %}
 | 
			
		||||
    ports:
 | 
			
		||||
      - published: {{ app.ports.53 }}
 | 
			
		||||
        target: 53
 | 
			
		||||
        protocol: udp
 | 
			
		||||
        mode: ingress
 | 
			
		||||
      - published: {{ app.ports.53 }}
 | 
			
		||||
        target: 53
 | 
			
		||||
        protocol: tcp
 | 
			
		||||
        mode: ingress
 | 
			
		||||
      - published: {{ app.ports.8064 }}
 | 
			
		||||
        target: 8064
 | 
			
		||||
        protocol: tcp
 | 
			
		||||
        mode: ingress
 | 
			
		||||
    volumes:
 | 
			
		||||
      - type: volume
 | 
			
		||||
        source: adguard-config
 | 
			
		||||
        target: /opt/adguardhome/conf
 | 
			
		||||
        read_only: false
 | 
			
		||||
      - type: volume
 | 
			
		||||
        source: adguard-data
 | 
			
		||||
        target: /opt/adguardhome/work
 | 
			
		||||
        read_only: false
 | 
			
		||||
    deploy:
 | 
			
		||||
      replicas: 1
 | 
			
		||||
							
								
								
									
										214
									
								
								resources/docker-compose/bitwarden.yaml.j2
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										214
									
								
								resources/docker-compose/bitwarden.yaml.j2
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,214 @@
 | 
			
		||||
---
 | 
			
		||||
version: "{{ skylab_compose_version }}"
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
x-global-env: &globalenv
 | 
			
		||||
  LOCAL_UID: "{{ _app_account.uid }}"
 | 
			
		||||
  LOCAL_GID: "{{ _app_account.uid }}"
 | 
			
		||||
  ASPNETCORE_ENVIRONMENT: Production
 | 
			
		||||
  globalSettings__selfHosted: "true"
 | 
			
		||||
  globalSettings__baseServiceUri__vault: https://{{ app.domain }}
 | 
			
		||||
  globalSettings__baseServiceUri__api: https://{{ app.domain }}/api
 | 
			
		||||
  globalSettings__baseServiceUri__identity: https://{{ app.domain }}/identity
 | 
			
		||||
  globalSettings__baseServiceUri__admin: https://{{ app.domain }}/admin
 | 
			
		||||
  globalSettings__baseServiceUri__notifications: https://{{ app.domain }}/notifications
 | 
			
		||||
  globalSettings__baseServiceUri__internalNotifications: http://bitwarden_notifications:5000
 | 
			
		||||
  globalSettings__baseServiceUri__internalAdmin: http://bitwarden_admin:5000
 | 
			
		||||
  globalSettings__baseServiceUri__internalIdentity: http://bitwarden_identity:5000
 | 
			
		||||
  globalSettings__baseServiceUri__internalApi: http://bitwarden_api:5000
 | 
			
		||||
  globalSettings__baseServiceUri__internalVault: http://bitwarden_web:5000
 | 
			
		||||
  globalSettings__pushRelayBaseUri: https://push.bitwarden.com
 | 
			
		||||
  globalSettings__installation__identityUri: https://identity.bitwarden.com
 | 
			
		||||
  globalSettings__sqlServer__connectionString: "Data Source=tcp:mssql,1433;Initial Catalog=vault;Persist Security Info=False;User ID=sa;Password=e934c0bb-3b5a-4e6b-b525-cd6d83004e1a;MultipleActiveResultSets=False;Connect Timeout=30;Encrypt=True;TrustServerCertificate=True"
 | 
			
		||||
  globalSettings__identityServer__certificatePassword: {{ app.settings.certificatePassword }}
 | 
			
		||||
  globalSettings__attachment__baseDirectory: /etc/bitwarden/core/attachments
 | 
			
		||||
  globalSettings__attachment__baseUrl: https://{{ app.domain }}/attachments
 | 
			
		||||
  globalSettings__dataProtection__directory: /etc/bitwarden/core/aspnet-dataprotection
 | 
			
		||||
  globalSettings__logDirectory: /etc/bitwarden/logs
 | 
			
		||||
  globalSettings__licenseDirectory: /etc/bitwarden/core/licenses
 | 
			
		||||
  globalSettings__internalIdentityKey: {{ app.settings.internalIdentityKey }}
 | 
			
		||||
  globalSettings__duo__aKey: {{ app.settings.duo__aKey }}
 | 
			
		||||
  globalSettings__installation__id: {{ app.settings.installation__id }}
 | 
			
		||||
  globalSettings__installation__key: {{ app.settings.installation__key }}
 | 
			
		||||
  globalSettings__yubico__clientId: REPLACE
 | 
			
		||||
  globalSettings__yubico__key: REPLACE
 | 
			
		||||
  globalSettings__mail__replyToEmail: noreply@enp.one
 | 
			
		||||
  globalSettings__mail__smtp__host: REPLACE
 | 
			
		||||
  globalSettings__mail__smtp__port: "587"
 | 
			
		||||
  globalSettings__mail__smtp__ssl: "false"
 | 
			
		||||
  globalSettings__mail__smtp__username: REPLACE
 | 
			
		||||
  globalSettings__mail__smtp__password: REPLACE
 | 
			
		||||
  globalSettings__disableUserRegistration: "false"
 | 
			
		||||
  globalSettings__hibpApiKey: REPLACE
 | 
			
		||||
  adminSettings__admins: ""
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
volumes:
 | 
			
		||||
{% for key, value in app.volumes.items() %}
 | 
			
		||||
  bitwarden-{{ key }}:
 | 
			
		||||
    name: datastore{{ value }}
 | 
			
		||||
    driver: glusterfs
 | 
			
		||||
{% endfor %}
 | 
			
		||||
 | 
			
		||||
networks:
 | 
			
		||||
  bitwarden_internal:
 | 
			
		||||
    internal: true
 | 
			
		||||
    name: bitwarden_internal
 | 
			
		||||
    driver: overlay
 | 
			
		||||
    ipam:
 | 
			
		||||
      driver: default
 | 
			
		||||
      config:
 | 
			
		||||
        - subnet: {{ app.networks.internal }}
 | 
			
		||||
  bitwarden_external:
 | 
			
		||||
    internal: false
 | 
			
		||||
    name: bitwarden_external
 | 
			
		||||
    driver: overlay
 | 
			
		||||
    ipam:
 | 
			
		||||
      driver: default
 | 
			
		||||
      config:
 | 
			
		||||
        - subnet: {{ app.networks.external }}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
services:
 | 
			
		||||
  mssql:
 | 
			
		||||
    image: bitwarden/mssql:{{ app.versions.mssql }}
 | 
			
		||||
    stop_grace_period: 60s
 | 
			
		||||
    networks:
 | 
			
		||||
      - bitwarden_internal
 | 
			
		||||
    volumes:
 | 
			
		||||
      - bitwarden-db-data:/var/opt/mssql/data
 | 
			
		||||
      - bitwarden-db-backup:/etc/bitwarden/mssql/backups
 | 
			
		||||
      - bitwarden-logs-db:/var/opt/mssql/log
 | 
			
		||||
    environment:
 | 
			
		||||
      LOCAL_UID: "{{ _app_account.uid }}"
 | 
			
		||||
      LOCAL_GID: "{{ _app_account.uid }}"
 | 
			
		||||
      ACCEPT_EULA: "Y"
 | 
			
		||||
      MSSQL_PID: Express
 | 
			
		||||
      SA_PASSWORD: {{ app.settings.SA_PASSWORD }}
 | 
			
		||||
    deploy:
 | 
			
		||||
      replicas: 1
 | 
			
		||||
 | 
			
		||||
  web:
 | 
			
		||||
    image: bitwarden/web:{{ app.versions.web }}
 | 
			
		||||
    networks:
 | 
			
		||||
      - bitwarden_internal
 | 
			
		||||
    volumes:
 | 
			
		||||
      - bitwarden-web:/etc/bitwarden/web
 | 
			
		||||
    environment: *globalenv
 | 
			
		||||
    deploy:
 | 
			
		||||
      replicas: 1
 | 
			
		||||
 | 
			
		||||
  attachments:
 | 
			
		||||
    image: bitwarden/attachments:{{ app.versions.attachments }}
 | 
			
		||||
    networks:
 | 
			
		||||
      - bitwarden_internal
 | 
			
		||||
    volumes:
 | 
			
		||||
      - bitwarden-core:/etc/bitwarden/core
 | 
			
		||||
    environment: *globalenv
 | 
			
		||||
    deploy:
 | 
			
		||||
      replicas: 1
 | 
			
		||||
 | 
			
		||||
  api:
 | 
			
		||||
    image: bitwarden/api:{{ app.versions.api }}
 | 
			
		||||
    volumes:
 | 
			
		||||
      - bitwarden-core:/etc/bitwarden/core
 | 
			
		||||
      - bitwarden-ca-certs:/etc/bitwarden/ca-certificates
 | 
			
		||||
      - bitwarden-logs-api:/etc/bitwarden/logs
 | 
			
		||||
    environment: *globalenv
 | 
			
		||||
    networks:
 | 
			
		||||
      - bitwarden_external
 | 
			
		||||
      - bitwarden_internal
 | 
			
		||||
    deploy:
 | 
			
		||||
      replicas: 1
 | 
			
		||||
 | 
			
		||||
  identity:
 | 
			
		||||
    image: bitwarden/identity:{{ app.versions.identity }}
 | 
			
		||||
    volumes:
 | 
			
		||||
      - bitwarden-identity:/etc/bitwarden/identity
 | 
			
		||||
      - bitwarden-core:/etc/bitwarden/core
 | 
			
		||||
      - bitwarden-ca-certs:/etc/bitwarden/ca-certificates
 | 
			
		||||
      - bitwarden-logs-identity:/etc/bitwarden/logs
 | 
			
		||||
    environment: *globalenv
 | 
			
		||||
    networks:
 | 
			
		||||
      - bitwarden_external
 | 
			
		||||
      - bitwarden_internal
 | 
			
		||||
    deploy:
 | 
			
		||||
      replicas: 1
 | 
			
		||||
 | 
			
		||||
  admin:
 | 
			
		||||
    image: bitwarden/admin:{{ app.versions.admin }}
 | 
			
		||||
    depends_on:
 | 
			
		||||
      - mssql
 | 
			
		||||
    volumes:
 | 
			
		||||
      - bitwarden-core:/etc/bitwarden/core
 | 
			
		||||
      - bitwarden-ca-certs:/etc/bitwarden/ca-certificates
 | 
			
		||||
      - bitwarden-logs-admin:/etc/bitwarden/logs
 | 
			
		||||
    environment: *globalenv
 | 
			
		||||
    networks:
 | 
			
		||||
      - bitwarden_external
 | 
			
		||||
      - bitwarden_internal
 | 
			
		||||
    deploy:
 | 
			
		||||
      replicas: 1
 | 
			
		||||
 | 
			
		||||
  icons:
 | 
			
		||||
    image: bitwarden/icons:{{ app.versions.icons }}
 | 
			
		||||
    volumes:
 | 
			
		||||
      - bitwarden-ca-certs:/etc/bitwarden/ca-certificates
 | 
			
		||||
      - bitwarden-logs-icons:/etc/bitwarden/logs
 | 
			
		||||
    environment: *globalenv
 | 
			
		||||
    networks:
 | 
			
		||||
      - bitwarden_external
 | 
			
		||||
      - bitwarden_internal
 | 
			
		||||
    deploy:
 | 
			
		||||
      replicas: 1
 | 
			
		||||
 | 
			
		||||
  notifications:
 | 
			
		||||
    image: bitwarden/notifications:1.40.0
 | 
			
		||||
    volumes:
 | 
			
		||||
      - bitwarden-ca-certs:/etc/bitwarden/ca-certificates
 | 
			
		||||
      - bitwarden-logs-notifications:/etc/bitwarden/logs
 | 
			
		||||
    environment: *globalenv
 | 
			
		||||
    networks:
 | 
			
		||||
      - bitwarden_external
 | 
			
		||||
      - bitwarden_internal
 | 
			
		||||
    deploy:
 | 
			
		||||
      replicas: 1
 | 
			
		||||
 | 
			
		||||
  events:
 | 
			
		||||
    image: bitwarden/events:{{ app.versions.events }}
 | 
			
		||||
    volumes:
 | 
			
		||||
      - bitwarden-ca-certs:/etc/bitwarden/ca-certificates
 | 
			
		||||
      - bitwarden-logs-events:/etc/bitwarden/logs
 | 
			
		||||
    environment: *globalenv
 | 
			
		||||
    networks:
 | 
			
		||||
      - bitwarden_external
 | 
			
		||||
      - bitwarden_internal
 | 
			
		||||
    deploy:
 | 
			
		||||
      replicas: 1
 | 
			
		||||
 | 
			
		||||
  nginx:
 | 
			
		||||
    image: bitwarden/nginx:{{ app.versions.nginx }}
 | 
			
		||||
    depends_on:
 | 
			
		||||
      - web
 | 
			
		||||
      - admin
 | 
			
		||||
      - api
 | 
			
		||||
      - identity
 | 
			
		||||
    ports:
 | 
			
		||||
      - published: {{ app.ports.8080 }}
 | 
			
		||||
        target: 8080
 | 
			
		||||
        protocol: tcp
 | 
			
		||||
        mode: ingress
 | 
			
		||||
      - published: {{ app.ports.8443 }}
 | 
			
		||||
        target: 8443
 | 
			
		||||
        protocol: tcp
 | 
			
		||||
        mode: ingress
 | 
			
		||||
    volumes:
 | 
			
		||||
      - bitwarden-nginx-data:/etc/bitwarden/nginx
 | 
			
		||||
      - bitwarden-ssl:/etc/ssl
 | 
			
		||||
      - bitwarden-logs-nginx:/var/log/nginx
 | 
			
		||||
    environment: *globalenv
 | 
			
		||||
    networks:
 | 
			
		||||
      - bitwarden_external
 | 
			
		||||
      - bitwarden_internal
 | 
			
		||||
    deploy:
 | 
			
		||||
      replicas: 1
 | 
			
		||||
							
								
								
									
										52
									
								
								resources/docker-compose/gitea.yaml.j2
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										52
									
								
								resources/docker-compose/gitea.yaml.j2
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,52 @@
 | 
			
		||||
---
 | 
			
		||||
version: "{{ skylab_compose_version }}"
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
networks:
 | 
			
		||||
  gitea:
 | 
			
		||||
    name: gitea
 | 
			
		||||
    driver: overlay
 | 
			
		||||
    ipam:
 | 
			
		||||
      driver: default
 | 
			
		||||
      config:
 | 
			
		||||
        - subnet: {{ app.networks.ext }}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
volumes:
 | 
			
		||||
{% for key, value in app.volumes.items() %}
 | 
			
		||||
  gitea-{{ key }}:
 | 
			
		||||
    name: datastore{{ value }}
 | 
			
		||||
    driver: glusterfs
 | 
			
		||||
{% endfor %}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
services:
 | 
			
		||||
  server:
 | 
			
		||||
    image: gitea/gitea:{{ app.versions.server }}
 | 
			
		||||
    hostname: gitea
 | 
			
		||||
    networks:
 | 
			
		||||
      - gitea
 | 
			
		||||
    ports:
 | 
			
		||||
      - published: {{ app.ports.3000 }}
 | 
			
		||||
        target: 3000
 | 
			
		||||
        protocol: tcp
 | 
			
		||||
        mode: ingress
 | 
			
		||||
      - published: {{ app.ports.22 }}
 | 
			
		||||
        target: 22
 | 
			
		||||
        protocol: tcp
 | 
			
		||||
        mode: ingress
 | 
			
		||||
    volumes:
 | 
			
		||||
      - type: volume
 | 
			
		||||
        source: gitea-data
 | 
			
		||||
        target: /data
 | 
			
		||||
        read_only: false
 | 
			
		||||
    environment:
 | 
			
		||||
      USER_UID: "{{ _app_account.uid }}"
 | 
			
		||||
      USER_GID: "{{ _app_account.uid }}"
 | 
			
		||||
      APP_NAME: ENP Version Control System
 | 
			
		||||
      RUN_MODE: prod
 | 
			
		||||
      ROOT_URL: https://{{ app.domain }}/
 | 
			
		||||
      DB_TYPE: sqlite3
 | 
			
		||||
      DISABLE_REGISTRATION: "true"
 | 
			
		||||
    deploy:
 | 
			
		||||
      replicas: 1
 | 
			
		||||
							
								
								
									
										55
									
								
								resources/docker-compose/minecraft.yaml.j2
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										55
									
								
								resources/docker-compose/minecraft.yaml.j2
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,55 @@
 | 
			
		||||
---
 | 
			
		||||
version: "{{ skylab_compose_version }}"
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
networks:
 | 
			
		||||
  minecraft:
 | 
			
		||||
    name: minecraft
 | 
			
		||||
    driver: overlay
 | 
			
		||||
    ipam:
 | 
			
		||||
      driver: default
 | 
			
		||||
      config:
 | 
			
		||||
        - subnet: {{ app.networks.ext }}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
volumes:
 | 
			
		||||
{% for key, value in app.volumes.items() %}
 | 
			
		||||
  minecraft-{{ key }}:
 | 
			
		||||
    name: datastore{{ value }}
 | 
			
		||||
    driver: glusterfs
 | 
			
		||||
{% endfor %}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
services:
 | 
			
		||||
  server:
 | 
			
		||||
    image: itzg/minecraft-server:latest
 | 
			
		||||
    hostname: minecraft
 | 
			
		||||
    networks:
 | 
			
		||||
      - minecraft
 | 
			
		||||
    ports:
 | 
			
		||||
      - published: {{ app.ports.25565 }}
 | 
			
		||||
        target: 25565
 | 
			
		||||
        protocol: tcp
 | 
			
		||||
        mode: ingress
 | 
			
		||||
    volumes:
 | 
			
		||||
      - type: volume
 | 
			
		||||
        source: minecraft-data
 | 
			
		||||
        target: /data
 | 
			
		||||
        read_only: false
 | 
			
		||||
    environment:
 | 
			
		||||
      EULA: "TRUE"
 | 
			
		||||
      TZ: Americas/New_York
 | 
			
		||||
      VERSION: {{ app.versions.server }}
 | 
			
		||||
      MAX_MEMORY: "8G"
 | 
			
		||||
      MOTD: "A home for buttery companions"
 | 
			
		||||
      MODE: survival
 | 
			
		||||
      OPS: {{ app.settings.admins | default([]) | join(',') }}
 | 
			
		||||
      WHITELIST: "{{ app.settings.users | default([]) | join(',') }}"
 | 
			
		||||
      MAX_BUILD_HEIGHT: "512"
 | 
			
		||||
      SNOOPER_ENABLED: "false"
 | 
			
		||||
      ICON: https://cdn.enp.one/img/logos/e-w-sm.png
 | 
			
		||||
      ENABLE_RCON: "false"
 | 
			
		||||
      UID: "{{ _app_account.uid }}"
 | 
			
		||||
      GID: "{{ _app_account.uid }}"
 | 
			
		||||
    deploy:
 | 
			
		||||
      replicas: 1
 | 
			
		||||
							
								
								
									
										95
									
								
								resources/docker-compose/plex.yaml.j2
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										95
									
								
								resources/docker-compose/plex.yaml.j2
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,95 @@
 | 
			
		||||
---
 | 
			
		||||
version: "{{ skylab_compose_version }}"
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
networks:
 | 
			
		||||
  plex:
 | 
			
		||||
    name: plex
 | 
			
		||||
    driver: overlay
 | 
			
		||||
    ipam:
 | 
			
		||||
      driver: default
 | 
			
		||||
      config:
 | 
			
		||||
        - subnet: {{ app.networks.ext }}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
volumes:
 | 
			
		||||
{% for key, value in app.volumes.items() %}
 | 
			
		||||
  plex-{{ key }}:
 | 
			
		||||
    name: datastore{{ value }}
 | 
			
		||||
    driver: glusterfs
 | 
			
		||||
{% endfor %}
 | 
			
		||||
  plex-data:
 | 
			
		||||
    name: plex-data
 | 
			
		||||
    driver: local
 | 
			
		||||
    driver_opts:
 | 
			
		||||
      type: nfs
 | 
			
		||||
      o: "addr={{ app.settings.mediastore }},ro"
 | 
			
		||||
      device: ":/nfs/plex"
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
services:
 | 
			
		||||
  server:
 | 
			
		||||
    image: plexinc/pms-docker:{{ app.versions.server }}
 | 
			
		||||
    hostname: plex-media-server
 | 
			
		||||
    networks:
 | 
			
		||||
      - plex
 | 
			
		||||
    ports:
 | 
			
		||||
      - published: {{ app.ports.32400 }}
 | 
			
		||||
        target: 32400
 | 
			
		||||
        protocol: tcp
 | 
			
		||||
        mode: ingress
 | 
			
		||||
      - published: {{ app.ports.3005 }}
 | 
			
		||||
        target: 3005
 | 
			
		||||
        protocol: tcp
 | 
			
		||||
        mode: ingress
 | 
			
		||||
      - published: {{ app.ports.8324 }}
 | 
			
		||||
        target: 8324
 | 
			
		||||
        protocol: tcp
 | 
			
		||||
        mode: ingress
 | 
			
		||||
      - published: {{ app.ports.32469 }}
 | 
			
		||||
        target: 32469
 | 
			
		||||
        protocol: tcp
 | 
			
		||||
        mode: ingress
 | 
			
		||||
      - published: {{ app.ports.1900 }}
 | 
			
		||||
        target: 1900
 | 
			
		||||
        protocol: udp
 | 
			
		||||
        mode: ingress
 | 
			
		||||
      - published: {{ app.ports.32410 }}
 | 
			
		||||
        target: 32410
 | 
			
		||||
        protocol: udp
 | 
			
		||||
        mode: ingress
 | 
			
		||||
      - published: {{ app.ports.32413 }}
 | 
			
		||||
        target: 32413
 | 
			
		||||
        protocol: udp
 | 
			
		||||
        mode: ingress
 | 
			
		||||
      - published: {{ app.ports.32414 }}
 | 
			
		||||
        target: 32414
 | 
			
		||||
        protocol: udp
 | 
			
		||||
        mode: ingress
 | 
			
		||||
    volumes:
 | 
			
		||||
      - type: volume
 | 
			
		||||
        source: plex-config
 | 
			
		||||
        target: /config
 | 
			
		||||
        read_only: false
 | 
			
		||||
      - type: volume
 | 
			
		||||
        source: plex-data
 | 
			
		||||
        target: /data
 | 
			
		||||
        read_only: true
 | 
			
		||||
      - type: volume
 | 
			
		||||
        source: plex-personal
 | 
			
		||||
        target: /personal
 | 
			
		||||
        read_only: false
 | 
			
		||||
    environment:
 | 
			
		||||
      TZ: "Americas/New_York"
 | 
			
		||||
      ALLOWED_NETWORKS: {{ app.settings.internal_subnets | join(',') }}
 | 
			
		||||
      PLEX_UID: "{{ _app_account.uid }}"
 | 
			
		||||
      PLEX_GID: "{{ _app_account.uid }}"
 | 
			
		||||
    deploy:
 | 
			
		||||
      replicas: 1
 | 
			
		||||
      placement:
 | 
			
		||||
{% if app.settings.exclude_hosts is defined %}
 | 
			
		||||
        constraints:
 | 
			
		||||
{% for host in app.settings.exclude_hosts %}
 | 
			
		||||
          - node.hostname!={{ host }}
 | 
			
		||||
{% endfor %}
 | 
			
		||||
{% endif %}
 | 
			
		||||
							
								
								
									
										70
									
								
								resources/docker-compose/unifi.yaml.j2
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										70
									
								
								resources/docker-compose/unifi.yaml.j2
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,70 @@
 | 
			
		||||
---
 | 
			
		||||
version: "{{ skylab_compose_version }}"
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
networks:
 | 
			
		||||
  unifi:
 | 
			
		||||
    name: unifi
 | 
			
		||||
    driver: overlay
 | 
			
		||||
    ipam:
 | 
			
		||||
      driver: default
 | 
			
		||||
      config:
 | 
			
		||||
        - subnet: {{ app.networks.ext }}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
volumes:
 | 
			
		||||
{% for key, value in app.volumes.items() %}
 | 
			
		||||
  unifi-{{ key }}:
 | 
			
		||||
    name: datastore{{ value }}
 | 
			
		||||
    driver: glusterfs
 | 
			
		||||
{% endfor %}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
services:
 | 
			
		||||
  wlc:
 | 
			
		||||
    image: jacobalberty/unifi:{{ app.versions.wlc }}
 | 
			
		||||
    hostname: en1-unifi-wlc
 | 
			
		||||
    init: true
 | 
			
		||||
    networks:
 | 
			
		||||
      - unifi
 | 
			
		||||
    ports:
 | 
			
		||||
      - published: {{ app.ports.8080 }}
 | 
			
		||||
        target: 8080
 | 
			
		||||
        protocol: tcp
 | 
			
		||||
        mode: ingress
 | 
			
		||||
      - published: {{ app.ports.8443 }}
 | 
			
		||||
        target: 8443
 | 
			
		||||
        protocol: tcp
 | 
			
		||||
        mode: ingress
 | 
			
		||||
      - published: {{ app.ports.8843 }}
 | 
			
		||||
        target: 8843
 | 
			
		||||
        protocol: tcp
 | 
			
		||||
        mode: ingress
 | 
			
		||||
      - published: {{ app.ports.8880 }}
 | 
			
		||||
        target: 8880
 | 
			
		||||
        protocol: tcp
 | 
			
		||||
        mode: ingress
 | 
			
		||||
      - published: {{ app.ports.3478 }}
 | 
			
		||||
        target: 3478
 | 
			
		||||
        protocol: udp
 | 
			
		||||
        mode: ingress
 | 
			
		||||
      - published: {{ app.ports.6789 }}
 | 
			
		||||
        target: 6789
 | 
			
		||||
        protocol: tcp
 | 
			
		||||
        mode: ingress
 | 
			
		||||
      - published: {{ app.ports.10001 }}
 | 
			
		||||
        target: 10001
 | 
			
		||||
        protocol: udp
 | 
			
		||||
        mode: ingress
 | 
			
		||||
    volumes:
 | 
			
		||||
      - type: volume
 | 
			
		||||
        source: unifi-data
 | 
			
		||||
        target: /unifi
 | 
			
		||||
        read_only: false
 | 
			
		||||
    environment:
 | 
			
		||||
      RUNAS_UID0: "false"
 | 
			
		||||
      UNIFI_UID: "{{ _app_account.uid }}"
 | 
			
		||||
      UNIFI_GID: "{{ _app_account.uid }}"
 | 
			
		||||
      TZ: "Americas/New_York"
 | 
			
		||||
    deploy:
 | 
			
		||||
      replicas: 1
 | 
			
		||||
							
								
								
									
										108
									
								
								resources/docker-compose/vikunja.yaml.j2
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										108
									
								
								resources/docker-compose/vikunja.yaml.j2
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,108 @@
 | 
			
		||||
---
 | 
			
		||||
version: "{{ skylab_compose_version }}"
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
networks:
 | 
			
		||||
  vikunja:
 | 
			
		||||
    name: vikunja
 | 
			
		||||
    driver: overlay
 | 
			
		||||
    ipam:
 | 
			
		||||
      driver: default
 | 
			
		||||
      config:
 | 
			
		||||
        - subnet: {{ app.networks.ext }}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
volumes:
 | 
			
		||||
{% for key, value in app.volumes.items() %}
 | 
			
		||||
  vikunja-{{ key }}:
 | 
			
		||||
    name: datastore{{ value }}
 | 
			
		||||
    driver: glusterfs
 | 
			
		||||
{% endfor %}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
services:
 | 
			
		||||
  database:
 | 
			
		||||
    image: mariadb:{{ app.versions.database }}
 | 
			
		||||
    hostname: database
 | 
			
		||||
    command: --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
 | 
			
		||||
    networks:
 | 
			
		||||
      - vikunja
 | 
			
		||||
    volumes:
 | 
			
		||||
      - type: volume
 | 
			
		||||
        source: vikunja-database
 | 
			
		||||
        target: /var/lib/mysql
 | 
			
		||||
        read_only: false
 | 
			
		||||
    environment:
 | 
			
		||||
      MYSQL_RANDOM_ROOT_PASSWORD: "true"
 | 
			
		||||
      MYSQL_USER: vikunja
 | 
			
		||||
      MYSQL_PASSWORD: {{ app.settings.database_password }}
 | 
			
		||||
      MYSQL_DATABASE: vikunja
 | 
			
		||||
    deploy:
 | 
			
		||||
      replicas: 1
 | 
			
		||||
 | 
			
		||||
  cache:
 | 
			
		||||
    image: redis:{{ app.versions.cache }}
 | 
			
		||||
    hostname: cache
 | 
			
		||||
    networks:
 | 
			
		||||
      - vikunja
 | 
			
		||||
    deploy:
 | 
			
		||||
      replicas: 1
 | 
			
		||||
 | 
			
		||||
  proxy:
 | 
			
		||||
    image: nginx:{{ app.versions.proxy }}
 | 
			
		||||
    hostname: proxy
 | 
			
		||||
    networks:
 | 
			
		||||
      - vikunja
 | 
			
		||||
    ports:
 | 
			
		||||
      - published: {{ app.ports.80 }}
 | 
			
		||||
        target: 80
 | 
			
		||||
        protocol: tcp
 | 
			
		||||
        mode: ingress
 | 
			
		||||
    volumes:
 | 
			
		||||
      - type: volume
 | 
			
		||||
        source: vikunja-nginx
 | 
			
		||||
        target: /etc/nginx/conf.d
 | 
			
		||||
        read_only: true
 | 
			
		||||
    deploy:
 | 
			
		||||
      replicas: 1
 | 
			
		||||
 | 
			
		||||
  api:
 | 
			
		||||
    image: vikunja/api:{{ app.versions.api }}
 | 
			
		||||
    hostname: api
 | 
			
		||||
    networks:
 | 
			
		||||
      - vikunja
 | 
			
		||||
    depends_on:
 | 
			
		||||
      - database
 | 
			
		||||
      - cache
 | 
			
		||||
    volumes:
 | 
			
		||||
      - type: volume
 | 
			
		||||
        source: vikunja-files
 | 
			
		||||
        target: /app/vikunja/files
 | 
			
		||||
        read_only: false
 | 
			
		||||
    environment:
 | 
			
		||||
      VIKUNJA_DATABASE_HOST: database
 | 
			
		||||
      VIKUNJA_DATABASE_PASSWORD: {{ app.settings.database_password }}
 | 
			
		||||
      VIKUNJA_DATABASE_TYPE: mysql
 | 
			
		||||
      VIKUNJA_DATABASE_USER: vikunja
 | 
			
		||||
      VIKUNJA_DATABASE_DATABASE: vikunja
 | 
			
		||||
      VIKUNJA_REDIS_ENABLED: "1"
 | 
			
		||||
      VIKUNJA_REDIS_HOST: cache:6379
 | 
			
		||||
      VIKUNJA_CACHE_ENABLED: "1"
 | 
			
		||||
      VIKUNJA_CACHE_TYPE: redis
 | 
			
		||||
      VIKUNJA_FILES_MAXSIZE: 50MB
 | 
			
		||||
    deploy:
 | 
			
		||||
      replicas: 1
 | 
			
		||||
 | 
			
		||||
  web:
 | 
			
		||||
    image: vikunja/frontend:{{ app.versions.web }}
 | 
			
		||||
    hostname: web
 | 
			
		||||
    networks:
 | 
			
		||||
      - vikunja
 | 
			
		||||
    depends_on:
 | 
			
		||||
      - database
 | 
			
		||||
      - cache
 | 
			
		||||
      - proxy
 | 
			
		||||
    environment:
 | 
			
		||||
      VIKUNJA_API_URL: https://{{ app.domain }}/api/v1
 | 
			
		||||
    deploy:
 | 
			
		||||
      replicas: 1
 | 
			
		||||
		Reference in New Issue
	
	Block a user