You've already forked RekomenciBackend
44df678c82
Signed-off-by: ITQ <itq.dev@ya.ru>
112 lines
3.2 KiB
YAML
112 lines
3.2 KiB
YAML
---
|
|
- name: Install prerequisites (apt)
|
|
ansible.builtin.apt:
|
|
name:
|
|
- curl
|
|
- openssl
|
|
state: present
|
|
update_cache: true
|
|
cache_valid_time: 3600
|
|
tags: coolify, prerequisites, installation
|
|
|
|
- name: Ensure Docker service is started and enabled
|
|
ansible.builtin.systemd:
|
|
name: docker
|
|
state: started
|
|
enabled: true
|
|
tags: coolify, docker, installation
|
|
|
|
- name: Create Coolify directories
|
|
ansible.builtin.file:
|
|
path: "{{ item }}"
|
|
state: directory
|
|
owner: "{{ coolify_owner }}"
|
|
group: "{{ coolify_group }}"
|
|
mode: '0750'
|
|
loop:
|
|
- "{{ coolify_base_dir }}/source"
|
|
- "{{ coolify_base_dir }}/ssh/keys"
|
|
- "{{ coolify_base_dir }}/ssh/mux"
|
|
- "{{ coolify_base_dir }}/applications"
|
|
- "{{ coolify_base_dir }}/databases"
|
|
- "{{ coolify_base_dir }}/backups"
|
|
- "{{ coolify_base_dir }}/services"
|
|
- "{{ coolify_base_dir }}/proxy/dynamic"
|
|
- "{{ coolify_base_dir }}/webhooks-during-maintenance"
|
|
tags: coolify, files, installation
|
|
|
|
- name: Download Coolify configuration files
|
|
ansible.builtin.get_url:
|
|
url: "https://cdn.coollabs.io/coolify/{{ item.file }}"
|
|
dest: "{{ coolify_base_dir }}/source/{{ item.dest }}"
|
|
mode: '0644'
|
|
loop:
|
|
- { file: "docker-compose.yml", dest: "docker-compose.yml" }
|
|
- { file: "docker-compose.prod.yml", dest: "docker-compose.prod.yml" }
|
|
- { file: "upgrade.sh", dest: "upgrade.sh" }
|
|
tags: coolify, files, installation
|
|
|
|
- name: Ensure .env exists from template (only when missing)
|
|
ansible.builtin.stat:
|
|
path: "{{ coolify_base_dir }}/source/.env"
|
|
register: env_file_check
|
|
tags: coolify, files, installation
|
|
|
|
- name: Create .env from template when missing
|
|
ansible.builtin.template:
|
|
src: "templates/.env.production.j2"
|
|
dest: "{{ coolify_base_dir }}/source/.env"
|
|
mode: '0640'
|
|
when: not env_file_check.stat.exists
|
|
tags: coolify, files, installation
|
|
|
|
- name: Ensure correct ownership and permissions recursively
|
|
ansible.builtin.file:
|
|
path: "{{ coolify_base_dir }}"
|
|
owner: "{{ coolify_owner }}"
|
|
group: "{{ coolify_group }}"
|
|
mode: '0750'
|
|
recurse: true
|
|
tags: coolify, permissions, installation
|
|
|
|
- name: Ensure Docker network exists
|
|
become: true
|
|
community.docker.docker_network:
|
|
name: "{{ coolify_docker_network }}"
|
|
driver: bridge
|
|
attachable: true
|
|
state: present
|
|
tags: coolify, docker, installation
|
|
|
|
- name: Start Coolify services
|
|
become: true
|
|
community.docker.docker_compose_v2:
|
|
project_src: "{{ coolify_base_dir }}/source"
|
|
files: "{{ coolify_compose_files }}"
|
|
pull: always
|
|
state: present
|
|
wait: true
|
|
wait_timeout: 300
|
|
tags: coolify, docker, installation
|
|
|
|
- name: Wait for Coolify HTTP to respond
|
|
ansible.builtin.uri:
|
|
url: "http://localhost:{{ coolify_http_port }}"
|
|
method: GET
|
|
status_code: 200
|
|
timeout: 30
|
|
body_format: json
|
|
register: coolify_health
|
|
until: coolify_health.status == 200
|
|
retries: 10
|
|
delay: 10
|
|
tags: coolify, health, installation
|
|
|
|
- name: Show installed message
|
|
ansible.builtin.debug:
|
|
msg:
|
|
- "Coolify installed successfully"
|
|
- "All containers are healthy and responding"
|
|
- "Access at: http://{{ ansible_host }}:{{ coolify_http_port }}"
|
|
tags: coolify, installation
|