Use redis role to set up mastodon

This commit is contained in:
Ivan R. 2024-10-21 21:16:05 +05:00
parent 42ad3aa103
commit b3301585ee
Signed by: lumin
GPG key ID: E0937DC7CD6D3817
5 changed files with 88 additions and 138 deletions

View file

@ -1,5 +0,0 @@
save ""
appendonly no
maxmemory 64mb
maxmemory-policy allkeys-lru

View file

@ -1 +0,0 @@
save 60 1000

View file

@ -1,3 +1,89 @@
--- ---
- import_tasks: redis.yml - name: Create mastodon docker network
- import_tasks: mastodon.yml become: true
community.docker.docker_network:
name: mastodon
- name: Create redis container
include_role:
name: redis
vars:
preset: persistent
container_name: redis-mastodon
docker_networks:
- name: mastodon
docker_volume: redis-mastodon
- name: Create redis cache container
include_role:
name: redis
vars:
preset: cache
container_name: redis-mastodon-cache
docker_networks:
- name: mastodon
- name: Create mastodon's public volume
become: true
community.docker.docker_volume:
name: mastodon-public-system
- name: Create mastodon config directory
become: true
ansible.builtin.file:
path: /etc/mastodon
state: directory
mode: '1750'
owner: root
group: root
- name: Copy env file
become: true
ansible.builtin.template:
src: mastodon.env.j2
dest: /etc/mastodon/.env
mode: '0660'
owner: root
group: root
- name: Create web container
become: true
community.docker.docker_container:
name: mastodon-web
image: ghcr.io/mastodon/mastodon:{{ version }}
env_file: /etc/mastodon/.env
command: ["bundle", "exec", "puma", "-C", "config/puma.rb"]
networks:
- name: mastodon
- name: postgresql
- name: minio
- name: haproxy
- name: authentik
ports:
- 127.0.0.1:3000:3000
volumes:
- mastodon-public-system:/mastodon/public/system
restart_policy: unless-stopped
- name: Create streaming container
become: true
community.docker.docker_container:
name: mastodon-streaming
image: ghcr.io/mastodon/mastodon-streaming:{{ version }}
env_file: /etc/mastodon/.env
command: ["node", "./streaming/index.js"]
networks:
- name: mastodon
- name: postgresql
- name: haproxy
ports:
- 127.0.0.1:3001:4000
restart_policy: unless-stopped
- name: Create sidekiq container
become: true
community.docker.docker_container:
name: mastodon-sidekiq
image: ghcr.io/mastodon/mastodon:{{ version }}
env_file: /etc/mastodon/.env
command: ["bundle", "exec", "sidekiq"]
networks:
- name: mastodon
- name: postgresql
- name: minio
- name: authentik
volumes:
- mastodon-public-system:/mastodon/public/system
restart_policy: unless-stopped

View file

@ -1,68 +0,0 @@
---
- name: Create mastodon's public volume
become: true
community.docker.docker_volume:
name: mastodon-public-system
- name: Create mastodon config directory
become: true
ansible.builtin.file:
path: /etc/mastodon
state: directory
mode: '1750'
owner: root
group: root
- name: Copy env file
become: true
ansible.builtin.template:
src: mastodon.env.j2
dest: /etc/mastodon/.env
mode: '0660'
owner: root
group: root
- name: Create web container
become: true
community.docker.docker_container:
name: mastodon-web
image: ghcr.io/mastodon/mastodon:{{ version }}
env_file: /etc/mastodon/.env
command: ["bundle", "exec", "puma", "-C", "config/puma.rb"]
networks:
- name: redis-mastodon
- name: postgresql
- name: minio
- name: haproxy
- name: authentik
ports:
- 127.0.0.1:3000:3000
volumes:
- mastodon-public-system:/mastodon/public/system
restart_policy: unless-stopped
- name: Create streaming container
become: true
community.docker.docker_container:
name: mastodon-streaming
image: ghcr.io/mastodon/mastodon-streaming:{{ version }}
env_file: /etc/mastodon/.env
command: ["node", "./streaming/index.js"]
networks:
- name: redis-mastodon
- name: postgresql
- name: haproxy
ports:
- 127.0.0.1:3001:4000
restart_policy: unless-stopped
- name: Create sidekiq container
become: true
community.docker.docker_container:
name: mastodon-sidekiq
image: ghcr.io/mastodon/mastodon:{{ version }}
env_file: /etc/mastodon/.env
command: ["bundle", "exec", "sidekiq"]
networks:
- name: redis-mastodon
- name: postgresql
- name: minio
- name: authentik
volumes:
- mastodon-public-system:/mastodon/public/system
restart_policy: unless-stopped

View file

@ -1,62 +0,0 @@
---
- name: Create redis-mastodon docker network
become: true
community.docker.docker_network:
name: redis-mastodon
- name: Create redis-mastodon docker volume
become: true
community.docker.docker_volume:
name: redis-mastodon
- name: Create /etc/redis/mastodon dir
become: true
ansible.builtin.file:
path: /etc/redis/mastodon
state: directory
mode: '1755'
owner: root
group: root
- name: Create /etc/redis/mastodon-cache dir
become: true
ansible.builtin.file:
path: /etc/redis/mastodon-cache
state: directory
mode: '1755'
owner: root
group: root
- name: Copy redis config
become: true
ansible.builtin.copy:
src: redis.conf
dest: /etc/redis/mastodon/redis.conf
- name: Copy redis cache config
become: true
ansible.builtin.copy:
src: redis-cache.conf
dest: /etc/redis/mastodon-cache/redis.conf
- name: Create redis container
become: true
community.docker.docker_container:
name: redis-mastodon
image: redis:7.4-bookworm
command: ["redis-server", "/etc/redis/redis.conf"]
networks:
- name: redis-mastodon
volumes:
- redis-mastodon:/data
- /etc/redis/mastodon:/etc/redis:ro
restart_policy: unless-stopped
- name: Create redis cache container
become: true
community.docker.docker_container:
name: redis-mastodon-cache
image: redis:7.4-bookworm
command: ["redis-server", "/etc/redis/redis.conf"]
networks:
- name: redis-mastodon
volumes:
- /etc/redis/mastodon-cache:/etc/redis:ro
restart_policy: unless-stopped