--- - name: Docker apps hosts: tamriel remote_user: ansible_worker vars: docker_compose_dir: "~/compose" vars_files: - domains.yml - secrets.yml tasks: - name: Remove old config file: path: "{{docker_compose_dir}}" state: absent - name: Synchronize docker-compose files synchronize: src: compose/ dest: "{{docker_compose_dir}}" - name: Generate nginx conf template: src: templates/nginx.conf.j2 dest: "{{docker_compose_dir}}/nginx/conf.d/{{item.key}}.conf" vars: server: "{{item.value}}" short_name: "{{item.key}}" with_items: "{{domains | dict2items}}" when: (item.value.disabled is undefined) or (item.value.disabled != true) - name: Counter app docker_compose: project_name: app pull: yes build: yes definition: version: '3' services: web: build: "{{docker_compose_dir}}/app" ports: - "127.0.0.1:{{domains.cnt.proxy.port}}:5000" restart: always redis: image: "redis:alpine" restart: always - name: nginx docker_compose: project_name: nginx pull: yes build: yes restarted: yes definition: version: '3' services: main: build: "{{docker_compose_dir}}/nginx" network_mode: host volumes: - "/etc/letsencrypt/live/dybiec.info:/etc/letsencrypt/live/dybiec.info:ro" - "/etc/letsencrypt/archive/dybiec.info:/etc/letsencrypt/archive/dybiec.info:ro" restart: always - name: gitea docker_compose: project_name: gitea pull: yes restarted: true definition: version: '2' volumes: data: external: name: gitea_data db: external: name: gitea_db networks: gitea: external: false services: web: image: gitea/gitea:latest volumes: - data:/data ports: - "127.0.0.1:{{domains.git.proxy.port}}:3000" - "2022:2022" environment: - DB_TYPE=postgres - DB_HOST=db:5432 - DB_NAME=gitea - DB_USER=gitea - "DB_PASSW={{gitea_db_password}}" - HTTP_PORT=3000 - "ROOT_URL=https://{{domains.git.name}}" - SSH_DOMAIN=git.dybiec.info - SSH_PORT=2022 - "APP_NAME={{domains.git.name}}" - DISABLE_REGISTRATION=true - INSTALL_LOCK=true - RUN_MODE=prod - OFFLINE_MODE=true networks: - gitea depends_on: - db restart: always redis: image: "redis:alpine" restart: always networks: - gitea db: image: postgres:11 restart: always environment: - POSTGRES_USER=gitea - "POSTGRES_PASSWORD={{gitea_db_password}}" - POSTGRES_DB=gitea networks: - gitea volumes: - db/:/var/lib/postgresql/data - name: vpn docker_compose: project_name: vpn pull: yes definition: version: '3' volumes: openvpn-certs: external: name: openvpn-pawel services: openvpn: image: kylemanna/openvpn network_mode: host volumes: - "openvpn-certs:/etc/openvpn" privileged: true