Skip to content

Commit ee427e4

Browse files
committed
Add wikijs vars
1 parent 5401ba8 commit ee427e4

3 files changed

Lines changed: 130 additions & 0 deletions

File tree

host_vars/ru01.sbog.org/wikijs.yml

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
---
2+
wikijs_web_host: wiki.sbog.ru
3+
wikijs_swarm_deploy:
4+
labels:
5+
- "traefik.enable=true"
6+
- "traefik.docker.network={{ traefik_docker_network_name }}"
7+
- "traefik.http.routers.wikijs.rule=Host(`{{ wikijs_web_host }}`)"
8+
- "traefik.http.routers.wikijs.tls=true"
9+
- "traefik.http.routers.wikijs.tls.certResolver=acmeDNS"
10+
- "traefik.http.services.wikijs.loadbalancer.server.port=3000"
11+
#- "traefik.http.middlewares.ssl-headers.headers.sslProxyHeaders=true"

inventory/hosts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@ us03.sbog.org
77
ansible_python_interpreter=/usr/bin/python3
88

99
[redis_servers]
10+
ru01.sbog.org
11+
1012
[rabbitmq_servers]
1113
[sensu_masters]
1214
[graphite]
@@ -93,3 +95,6 @@ ru01.sbog.org
9395
us01.sbog.org
9496
us02.sbog.org
9597
us03.sbog.org
98+
99+
[wikijs-servers]
100+
ru01.sbog.org

playbooks/services/run-wikijs.yml

Lines changed: 114 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,114 @@
1+
#!/usr/bin/env -S ansible-playbook
2+
#
3+
# Playbook to install and run wikijs container on
4+
# target nodes. Run it like usual executable script:
5+
#
6+
# > ./run-wikijs.yml
7+
8+
---
9+
- name: Configure target servers
10+
hosts: wikijs-servers
11+
become: yes
12+
become_user: root
13+
14+
tasks:
15+
- name: Create DB folders
16+
ansible.builtin.file:
17+
dest: "{{ item.dest }}"
18+
state: directory
19+
mode: "{{ item.mode }}"
20+
loop:
21+
- { dest: "{{ wikijs_db_data | default('/var/wikijs/db/data') }}", mode: '0700' }
22+
- { dest: "{{ wikijs_db_init_user_db_dir | default('/var/wikijs/db/init') }}", mode: '0755' }
23+
24+
# This task will copy script to create DB during container initialization.
25+
# More info - https://github.com/docker-library/docs/blob/master/postgres/README.md#initialization-scripts
26+
- name: Copy init_user_db script to {{ wikijs_db_init_user_db_dir | default('/var/wikijs/db/init') }}
27+
ansible.builtin.copy:
28+
content: |
29+
#!/bin/bash
30+
set -e
31+
psql -v ON_ERROR_STOP=1 --username postgres --dbname postgres <<-EOSQL
32+
CREATE DATABASE {{ wikijs_db_name | default('wikijs') }};
33+
CREATE USER {{ wikijs_db_user | default('wikijs') }} WITH ENCRYPTED PASSWORD '{{ wikijs_db_pass | default('wikijs') }}';
34+
GRANT all privileges ON database vaultwarden TO {{ wikijs_db_user | default('wikijs') }};
35+
EOSQL
36+
dest: "{{ wikijs_db_init_user_db_dir | default('/var/wikijs/db/init') }}/create_db.sh"
37+
mode: 0755
38+
39+
- name: Deploy wikjs container in swarm
40+
community.docker.docker_stack:
41+
state: present
42+
name: "{{ wikijs_container_name | default('wikijs') }}"
43+
with_registry_auth: true
44+
compose:
45+
- services:
46+
wikijs:
47+
image: "ghcr.io/requarks/wiki:{{ wikijs_image_tag | default('2') }}"
48+
environment:
49+
DB_TYPE: "postgres"
50+
DB_HOST: "wikijs-db"
51+
DB_PORT: 5432
52+
DB_NAME: "{{ wikijs_db_name | default('wikijs') }}"
53+
DB_USER: "{{ wikijs_db_user | default('wikijs') }}"
54+
DB_PASS: "{{ wikijs_db_pass | default('wikijs') }}"
55+
tty: true
56+
ports: "{{ wikijs_ports | default([]) }}"
57+
deploy: "{{ wikijs_swarm_deploy }}"
58+
# How does look wikijs_swarm_deploy:
59+
# wikijs_swarm_deploy:
60+
# labels:
61+
# - "traefik.enable=true"
62+
# - "traefik.docker.network={{ traefik_docker_network_name }}"
63+
# - "traefik.http.routers.wikijs.rule=Host(`{{ wikijs_web_host }}`)"
64+
# - "traefik.http.routers.wikijs.tls=true"
65+
# - "traefik.http.routers.wikijs.tls.certResolver=acmeDNS"
66+
# - "traefik.http.services.wikijs.loadbalancer.server.port=3000"
67+
# #- "traefik.http.middlewares.ssl-headers.headers.sslProxyHeaders=true"
68+
wikijs-db:
69+
image: "{{ wikijs_db_image | default('postgres:11')}}"
70+
restart: always
71+
volumes:
72+
- "{{ wikijs_db_data | default('/var/wikijs/db/data') }}:/var/lib/postgresql/data"
73+
- "{{ wikijs_db_init_user_db_dir | default('/var/wikijs/db/init') }}:/docker-entrypoint-initdb.d"
74+
environment:
75+
PGUSER: "{{ wikijs_db_user | default('wikijs') }}"
76+
POSTGRES_PASSWORD: "{{ wikijs_db_pass | default('wikijs') }}"
77+
POSTGRES_DB: "{{ wikijs_db_name | default('wikijs') }}"
78+
POSTGRES_USER: "{{ wikijs_db_user | default('wikijs') }}"
79+
ARCHIVE_MODE: "on"
80+
ARCHIVE_TIMEOUT: 3600
81+
AWS_ACCESS_KEY_ID: "{{ wikijs_pg_aws_key | default('') }}"
82+
AWS_REGION: "{{ wikijs_pg_aws_region | default('') }}"
83+
AWS_ENDPOINT: "{{ wikijs_pg_aws_endpoint | default('') }}"
84+
AWS_SECRET_ACCESS_KEY: "{{ wikijs_pg_aws_secre | default('') }}"
85+
WALG_S3_PREFIX: "{{ wikijs_pg_s3_bucket | default('') }}"
86+
PGDATABASE: "{{ wikijs_db_name | default('wikijs') }}"
87+
PGPASSWORD: "{{ wikijs_db_pass | default('wikijs') }}"
88+
PGHOST: /var/run/postgresql
89+
PGDATA: /var/lib/postgresql/data
90+
WALG_COMPRESSION_METHOD: brotli
91+
WALG_DELTA_MAX_STEPS: 6
92+
APPRISE_TARGET: "{{ wikijs_pg_aprise_target | default('') }}"
93+
# RECOVERY_TARGET_ACTION: ${RECOVERY_TARGET_ACTION}
94+
# RECOVERY_TARGET_TIME: ${RECOVERY_TARGET_TIME}
95+
# RECOVERY_TARGET_TIMELINE: ${RECOVERY_TARGET_TIMELINE}
96+
# RECOVERY_WALG: ${RECOVERY_WALG}
97+
# WALG_RESTORE_NAME: ${WALG_RESTORE_NAME}
98+
container_name: "{{ wikijs_db_container_name | default('wikijs-db') }}"
99+
healthcheck:
100+
test: ["CMD-SHELL", "pg_isready -d {{ wikijs_db_name | default('wikijs') }} -U {{ wikijs_db_user | default('wikijs') }}"]
101+
# start_period: 300s
102+
interval: 20s
103+
timeout: 30s
104+
retries: 3
105+
networks:
106+
default:
107+
external:
108+
name: "{{ _docker_network_name | default('tf_net') }}"
109+
run_once: true
110+
when:
111+
- wikijs_swarm_deploy is defined
112+
113+
tags:
114+
- wikijs

0 commit comments

Comments
 (0)