added env file

This commit is contained in:
Felix Ableitner 2019-08-18 00:54:58 +02:00
parent 6fa0bfce32
commit c45ad217c4
5 changed files with 36 additions and 17 deletions

1
.gitignore vendored
View file

@ -1 +1,2 @@
ansible/inventory ansible/inventory
ansible/passwords/

View file

@ -22,14 +22,28 @@
file: path={{item.path}} state=directory file: path={{item.path}} state=directory
with_items: with_items:
- { path: '/lemmy/' } - { path: '/lemmy/' }
- { path: '/lemmy/volumes/' }
- { path: '/var/www/certbot' }
- name: add all template files - name: add all template files
template: src={{item.src}} dest={{item.dest}} template: src={{item.src}} dest={{item.dest}}
with_items: with_items:
- { src: '../docker/prod/docker-compose.yml', dest: '/lemmy/docker-compose.yml' } - { src: 'templates/env', dest: '/lemmy/.env' }
- { src: 'nginx.conf', dest: '/lemmy/nginx.conf' } - { src: 'templates/docker-compose.yml', dest: '/lemmy/docker-compose.yml' }
- { src: 'templates/nginx.conf', dest: '/lemmy/nginx.conf' }
vars:
postgres_password: "{{ lookup('password', 'passwords/{{ inventory_hostname }}/postgres chars=ascii_letters,digits') }}"
jwt_password: "{{ lookup('password', 'passwords/{{ inventory_hostname }}/jwt chars=ascii_letters,digits') }}"
- name: request letsencrypt certificates - name: set env file permissions
file:
path: "/lemmy/.env"
state: touch
mode: 0600
access_time: preserve
modification_time: preserve
- name: request initial letsencrypt certificate
command: certbot certonly --standalone --agree-tos -d '{{ domain }}' -m '{{ letsencrypt_contact_email }}' command: certbot certonly --standalone --agree-tos -d '{{ domain }}' -m '{{ letsencrypt_contact_email }}'
args: args:
creates: '/etc/letsencrypt/live/{{domain}}/privkey.pem' creates: '/etc/letsencrypt/live/{{domain}}/privkey.pem'
@ -46,9 +60,9 @@
state: present state: present
pull: yes pull: yes
- name: renew certbot certificates - name: certbot renewal cronjob
cron: cron:
special_time=daily special_time=daily
name=certbot-renew name=certbot-renew
user=root user=root
job="certbot certonly --webroot --webroot-path=/peertube/volumes/certbot/ -d '{{ domain }}' --deploy-hook 'docker-compose -f /peertube/docker-compose.yml exec nginx nginx -s reload'" job="certbot certonly --webroot --webroot-path=/var/www/certbot -d '{{ domain }}' --deploy-hook 'docker-compose -f /peertube/docker-compose.yml exec nginx nginx -s reload'"

View file

@ -1,32 +1,32 @@
version: '2.4' version: '2.4'
services: services:
db: db:
image: postgres:12-alpine image: postgres:12-alpine
restart: always restart: always
environment: environment:
POSTGRES_USER: rrr POSTGRES_USER=lemmy
POSTGRES_PASSWORD: rrr POSTGRES_PASSWORD=${DATABASE_PASSWORD}
POSTGRES_DB: rrr POSTGRES_DB=lemmy
volumes: volumes:
- db:/var/lib/postgresql/data - ./volumes/db:/var/lib/postgresql/data
healthcheck: healthcheck:
test: ["CMD-SHELL", "pg_isready -U rrr"] test: ["CMD-SHELL", "pg_isready -U lemmy"]
interval: 5s interval: 5s
timeout: 5s timeout: 5s
retries: 20 retries: 20
lemmy: lemmy:
image: dessalines/lemmy:v0.0.7.3 image: dessalines/lemmy:v0.0.7.3
restart: always
ports: ports:
- "8536:8536" - "8536:8536"
environment: environment:
LEMMY_FRONT_END_DIR: /app/dist LEMMY_FRONT_END_DIR=/app/dist
DATABASE_URL: postgres://rrr:rrr@db:5432/rrr DATABASE_URL=postgres://rrr:rrr@db:5432/rrr
JWT_SECRET: changeme JWT_SECRET=${JWT_SECRET}
HOSTNAME: rrr HOSTNAME=${DOMAIN}
restart: always
depends_on: depends_on:
db: db:
condition: service_healthy condition: service_healthy
volumes:
db:

4
ansible/templates/env Normal file
View file

@ -0,0 +1,4 @@
DOMAIN={{ domain }}
DATABASE_PASSWORD={{ postgres_password }}
DATABASE_URL=postgres://lemmy:${DATABASE_PASSWORD}@db:5432/lemmy
JWT_SECRET={{ jwt_password }}