diff --git a/ansible/playbooks/forgejo.yaml b/ansible/playbooks/forgejo.yaml new file mode 100644 index 0000000..da01c0d --- /dev/null +++ b/ansible/playbooks/forgejo.yaml @@ -0,0 +1,5 @@ +--- +- name : Install Forgejo + hosts: forgejo + roles: + - forgejo \ No newline at end of file diff --git a/ansible/playbooks/roles/forgejo/tasks/forgejo_docker.yaml b/ansible/playbooks/roles/forgejo/tasks/forgejo_docker.yaml new file mode 100644 index 0000000..40aad45 --- /dev/null +++ b/ansible/playbooks/roles/forgejo/tasks/forgejo_docker.yaml @@ -0,0 +1,34 @@ +--- +- name: Create docker compose directory + ansible.builtin.file: + path: "/home/{{ ansible_user }}/compose_projects/forgejo" + state: directory + mode: '0755' + register: compose_dir + +- name: Create data directory + ansible.builtin.file: + path: "/home/{{ ansible_user }}/forgejo/data" + state: directory + mode: '0755' + register: forgejo_data_dir + + +- name: Create DB data directory + ansible.builtin.file: + path: "/home/{{ ansible_user }}/forgejo/db" + state: directory + mode: '0755' + register: forgejo_db_dir + + +- name: Copy compose file + ansible.builtin.template: + src: templates/forgejo_compose.yaml.j2 + dest: "{{ compose_dir.path }}/compose.yaml" + + +- name: Starting forgejo compose project + community.docker.docker_compose_v2: + project_src: "{{ compose_dir.path }}" + diff --git a/ansible/playbooks/roles/forgejo/tasks/main.yaml b/ansible/playbooks/roles/forgejo/tasks/main.yaml new file mode 100644 index 0000000..daaca37 --- /dev/null +++ b/ansible/playbooks/roles/forgejo/tasks/main.yaml @@ -0,0 +1,6 @@ +--- +- include_role: + name: geerlingguy.docker + apply: + become: true +- include_tasks: forgejo_docker.yaml \ No newline at end of file diff --git a/ansible/playbooks/roles/forgejo/templates/forgejo_compose.yaml.j2 b/ansible/playbooks/roles/forgejo/templates/forgejo_compose.yaml.j2 new file mode 100644 index 0000000..cf43b54 --- /dev/null +++ b/ansible/playbooks/roles/forgejo/templates/forgejo_compose.yaml.j2 @@ -0,0 +1,52 @@ +networks: + forgejo: + external: false + newt: + name: newt_compose_default + external: true + +services: + server: + image: codeberg.org/forgejo/forgejo:16.0.1 + container_name: forgejo + restart: always + environment: + - USER_UID={{ ansible_user_uid }} + - USER_GID={{ ansible_group_uid }} + + - FORGEJO__database__DB_TYPE=postgres + - FORGEJO__database__HOST=db:5432 + - FORGEJO__database__NAME=forgejo + - FORGEJO__database__USER=forgejo + - FORGEJO__database__PASSWD={{ forgejo_db_password }} + + + networks: + - forgejo + - newt + + volumes: + - {{ forgejo_data_dir.path }}:/data + - /etc/localtime:/etc/localtime:ro + ports: + - '3000:3000' + - '222:22' + + depends_on: + - db + + + db: + image: postgres:14 + restart: always + environment: + - POSTGRES_USER=forgejo + - POSTGRES_PASSWORD={{ forgejo_db_password }} + - POSTGRES_DB=forgejo + networks: + - forgejo + volumes: + - {{ forgejo_db_dir.path }}:/var/lib/postgresql/data + + +