diff --git a/docker/files/.env-acc b/docker/files/.env-acc new file mode 100644 index 00000000..4ae239f8 --- /dev/null +++ b/docker/files/.env-acc @@ -0,0 +1,17 @@ +HOST=0.0.0.0 +PORT=80 +LOG_LEVEL=WARN +DEBUG=false +SQLALCHEMY_DATABASE_URI=postgresql://postgres:123456@db:5432/acc +MODULE_NAME=brewman.main +PROJECT_NAME=brewman +POSTGRES_SERVER=db +POSTGRES_USER=postgres +POSTGRES_PASSWORD=123456 +POSTGRES_DB=exp +SECRET_KEY=c9bee2d38676447c2f7a9ea715446e2fd09f16fbaa5b3f6a6f207ec18993987f +MIDDLEWARE_SECRET_KEY=cb71666b9c +ALGORITHM=HS256 +JWT_TOKEN_EXPIRE_MINUTES=30 +ALEMBIC_LOG_LEVEL=INFO +ALEMBIC_SQLALCHEMY_LOG_LEVEL=WARN diff --git a/docker/files/.env-exp b/docker/files/.env-exp new file mode 100644 index 00000000..a7bfc0bf --- /dev/null +++ b/docker/files/.env-exp @@ -0,0 +1,17 @@ +HOST=0.0.0.0 +PORT=80 +LOG_LEVEL=WARN +DEBUG=false +SQLALCHEMY_DATABASE_URI=postgresql://postgres:123456@db:5432/exp +MODULE_NAME=brewman.main +PROJECT_NAME=brewman +POSTGRES_SERVER=db +POSTGRES_USER=postgres +POSTGRES_PASSWORD=123456 +POSTGRES_DB=exp +SECRET_KEY=8546a61262dab7c05ccf2e26abe30bc10966904df6dfd29259ea85dd0844a8e7 +MIDDLEWARE_SECRET_KEY=da6fcd999b +ALGORITHM=HS256 +JWT_TOKEN_EXPIRE_MINUTES=30 +ALEMBIC_LOG_LEVEL=INFO +ALEMBIC_SQLALCHEMY_LOG_LEVEL=WARN diff --git a/docker/files/.env-hops b/docker/files/.env-hops new file mode 100644 index 00000000..94a75aee --- /dev/null +++ b/docker/files/.env-hops @@ -0,0 +1,17 @@ +HOST=0.0.0.0 +PORT=80 +LOG_LEVEL=WARN +DEBUG=false +SQLALCHEMY_DATABASE_URI=postgresql://postgres:123456@db:5432/hops +MODULE_NAME=brewman.main +PROJECT_NAME=brewman +POSTGRES_SERVER=db +POSTGRES_USER=postgres +POSTGRES_PASSWORD=123456 +POSTGRES_DB=exp +SECRET_KEY=cfb3be420c4e2b0ed423b2e4e238713d0461e2ba56198138ad6c4d82aef6295c +MIDDLEWARE_SECRET_KEY=9c2bdd24be +ALGORITHM=HS256 +JWT_TOKEN_EXPIRE_MINUTES=30 +ALEMBIC_LOG_LEVEL=INFO +ALEMBIC_SQLALCHEMY_LOG_LEVEL=WARN diff --git a/docker/files/.env-mhl b/docker/files/.env-mhl new file mode 100644 index 00000000..b72da50e --- /dev/null +++ b/docker/files/.env-mhl @@ -0,0 +1,17 @@ +HOST=0.0.0.0 +PORT=80 +LOG_LEVEL=WARN +DEBUG=false +SQLALCHEMY_DATABASE_URI=postgresql://postgres:123456@db:5432/mhl +MODULE_NAME=brewman.main +PROJECT_NAME=brewman +POSTGRES_SERVER=db +POSTGRES_USER=postgres +POSTGRES_PASSWORD=123456 +POSTGRES_DB=exp +SECRET_KEY=c9fd1b99931feb083f67470170650420b99eb35368d3de186427166c28d32c8b +MIDDLEWARE_SECRET_KEY=9183bdcfb0 +ALGORITHM=HS256 +JWT_TOKEN_EXPIRE_MINUTES=30 +ALEMBIC_LOG_LEVEL=INFO +ALEMBIC_SQLALCHEMY_LOG_LEVEL=WARN diff --git a/docker/files/nginx.conf.j2 b/docker/files/nginx.conf.j2 new file mode 100644 index 00000000..64ed0041 --- /dev/null +++ b/docker/files/nginx.conf.j2 @@ -0,0 +1,46 @@ +server { + + listen 80; + server_name {{ http_host }}; + + # Allow large attachments + client_max_body_size 128M; + + location /api { + proxy_set_header Host $host:$server_port; + proxy_set_header X-Scheme $scheme; + proxy_set_header X-Forwarded-For $remote_addr; + proxy_pass http://localhost:{{ host_port }}; + } + location /token { + + proxy_set_header Host $host:$server_port; + proxy_set_header X-Scheme $scheme; + proxy_set_header X-Forwarded-For $remote_addr; + proxy_pass http://localhost:{{ host_port }}; + } + location /refresh { + proxy_set_header Host $host:$server_port; + proxy_set_header X-Scheme $scheme; + proxy_set_header X-Forwarded-For $remote_addr; + proxy_pass http://localhost:{{ host_port }}; + } + location /attendance-report { + proxy_set_header Host $host:$server_port; + proxy_set_header X-Scheme $scheme; + proxy_set_header X-Forwarded-For $remote_addr; + proxy_pass http://localhost:{{ host_port }}; + } + location /db-image { + proxy_set_header Host $host:$server_port; + proxy_set_header X-Scheme $scheme; + proxy_set_header X-Forwarded-For $remote_addr; + proxy_pass http://localhost:{{ host_port }}; + } + location / { + root /var/lib/{{ host_directory }}/frontend; + index index.html index.htm; + try_files $uri $uri/ /index.html =404; + } +} + diff --git a/docker/playbook-acc.yml b/docker/playbook-acc.yml new file mode 100755 index 00000000..cf085dc6 --- /dev/null +++ b/docker/playbook-acc.yml @@ -0,0 +1,70 @@ +################################################# +# DO Community Playbooks: Docker +################################################# +--- +- hosts: all + become: true + vars_files: + - vars/acc.yml + + tasks: + - name: Copy dockerfile + synchronize: src=app dest=/tmp + + - name: Build brewman image + docker_image: + name: brewman:latest + build: + path: /tmp/app/ + dockerfile: /tmp/app/Dockerfile + pull: yes + state: present + source: build + + - name: Upload the .env file + template: + src: "files/.env-acc" + dest: "/var/lib/{{ host_directory }}/.env" + + - name: Create brewman container + docker_container: + name: "{{ host_directory }}" + image: brewman:latest + state: started + restart_policy: "unless-stopped" + env_file: "/var/lib/{{ host_directory }}/.env" + links: + - "postgres:db" + published_ports: + - "127.0.0.1:{{ host_port }}:80" + volumes: + - "/var/lib/{{ host_directory }}/frontend:/frontend" + + + - name: Check if Nginx conf file exists + stat: path="/etc/nginx/sites-available/{{ http_conf }}" + register: status + + - name: No need to reload Nginx + debug: msg= {{ "No need to reload Nginx as sites-available entries have already been created" }} + + - name: Set Nginx conf file + when: status.stat.exists == false + template: + src: "files/nginx.conf.j2" + dest: "/etc/nginx/sites-available/{{ http_conf }}" + + - name: Enable new site + when: status.stat.exists == false + file: + src: "/etc/nginx/sites-available/{{ http_conf }}" + dest: "/etc/nginx/sites-enabled/{{ http_conf }}" + state: link + notify: Reload Nginx + + handlers: + - name: Reload Nginx + service: + name: nginx + state: reloaded + diff --git a/docker/playbook-exp.yml b/docker/playbook-exp.yml new file mode 100755 index 00000000..c178d46d --- /dev/null +++ b/docker/playbook-exp.yml @@ -0,0 +1,70 @@ +################################################# +# DO Community Playbooks: Docker +################################################# +--- +- hosts: all + become: true + vars_files: + - vars/exp.yml + + tasks: + - name: Copy dockerfile + synchronize: src=app dest=/tmp + + - name: Build brewman image + docker_image: + name: brewman:latest + build: + path: /tmp/app/ + dockerfile: /tmp/app/Dockerfile + pull: yes + state: present + source: build + + - name: Upload the .env file + template: + src: "files/.env-exp" + dest: "/var/lib/{{ host_directory }}/.env" + + - name: Create brewman container + docker_container: + name: "{{ host_directory }}" + image: brewman:latest + state: started + restart_policy: "unless-stopped" + env_file: "/var/lib/{{ host_directory }}/.env" + links: + - "postgres:db" + published_ports: + - "127.0.0.1:{{ host_port }}:80" + volumes: + - "/var/lib/{{ host_directory }}/frontend:/frontend" + + + - name: Check if Nginx conf file exists + stat: path="/etc/nginx/sites-available/{{ http_conf }}" + register: status + + - name: No need to reload Nginx + debug: msg= {{ "No need to reload Nginx as sites-available entries have already been created" }} + + - name: Set Nginx conf file + when: status.stat.exists == false + template: + src: "files/nginx.conf.j2" + dest: "/etc/nginx/sites-available/{{ http_conf }}" + + - name: Enable new site + when: status.stat.exists == false + file: + src: "/etc/nginx/sites-available/{{ http_conf }}" + dest: "/etc/nginx/sites-enabled/{{ http_conf }}" + state: link + notify: Reload Nginx + + handlers: + - name: Reload Nginx + service: + name: nginx + state: reloaded + diff --git a/docker/playbook-hops.yml b/docker/playbook-hops.yml new file mode 100755 index 00000000..cbb4300b --- /dev/null +++ b/docker/playbook-hops.yml @@ -0,0 +1,70 @@ +################################################# +# DO Community Playbooks: Docker +################################################# +--- +- hosts: all + become: true + vars_files: + - vars/hops.yml + + tasks: + - name: Copy dockerfile + synchronize: src=app dest=/tmp + + - name: Build brewman image + docker_image: + name: brewman:latest + build: + path: /tmp/app/ + dockerfile: /tmp/app/Dockerfile + pull: yes + state: present + source: build + + - name: Upload the .env file + template: + src: "files/.env-hops" + dest: "/var/lib/{{ host_directory }}/.env" + + - name: Create brewman container + docker_container: + name: "{{ host_directory }}" + image: brewman:latest + state: started + restart_policy: "unless-stopped" + env_file: "/var/lib/{{ host_directory }}/.env" + links: + - "postgres:db" + published_ports: + - "127.0.0.1:{{ host_port }}:80" + volumes: + - "/var/lib/{{ host_directory }}/frontend:/frontend" + + + - name: Check if Nginx conf file exists + stat: path="/etc/nginx/sites-available/{{ http_conf }}" + register: status + + - name: No need to reload Nginx + debug: msg= {{ "No need to reload Nginx as sites-available entries have already been created" }} + + - name: Set Nginx conf file + when: status.stat.exists == false + template: + src: "files/nginx.conf.j2" + dest: "/etc/nginx/sites-available/{{ http_conf }}" + + - name: Enable new site + when: status.stat.exists == false + file: + src: "/etc/nginx/sites-available/{{ http_conf }}" + dest: "/etc/nginx/sites-enabled/{{ http_conf }}" + state: link + notify: Reload Nginx + + handlers: + - name: Reload Nginx + service: + name: nginx + state: reloaded + diff --git a/docker/playbook-mhl.yml b/docker/playbook-mhl.yml new file mode 100755 index 00000000..01d38937 --- /dev/null +++ b/docker/playbook-mhl.yml @@ -0,0 +1,70 @@ +################################################# +# DO Community Playbooks: Docker +################################################# +--- +- hosts: all + become: true + vars_files: + - vars/mhl.yml + + tasks: + - name: Copy dockerfile + synchronize: src=app dest=/tmp + + - name: Build brewman image + docker_image: + name: brewman:latest + build: + path: /tmp/app/ + dockerfile: /tmp/app/Dockerfile + pull: yes + state: present + source: build + + - name: Upload the .env file + template: + src: "files/.env-mhl" + dest: "/var/lib/{{ host_directory }}/.env" + + - name: Create brewman container + docker_container: + name: "{{ host_directory }}" + image: brewman:latest + state: started + restart_policy: "unless-stopped" + env_file: "/var/lib/{{ host_directory }}/.env" + links: + - "postgres:db" + published_ports: + - "127.0.0.1:{{ host_port }}:80" + volumes: + - "/var/lib/{{ host_directory }}/frontend:/frontend" + + + - name: Check if Nginx conf file exists + stat: path="/etc/nginx/sites-available/{{ http_conf }}" + register: status + + - name: No need to reload Nginx + debug: msg= {{ "No need to reload Nginx as sites-available entries have already been created" }} + + - name: Set Nginx conf file + when: status.stat.exists == false + template: + src: "files/nginx.conf.j2" + dest: "/etc/nginx/sites-available/{{ http_conf }}" + + - name: Enable new site + when: status.stat.exists == false + file: + src: "/etc/nginx/sites-available/{{ http_conf }}" + dest: "/etc/nginx/sites-enabled/{{ http_conf }}" + state: link + notify: Reload Nginx + + handlers: + - name: Reload Nginx + service: + name: nginx + state: reloaded + diff --git a/docker/vars/acc.yml b/docker/vars/acc.yml new file mode 100644 index 00000000..9c376b90 --- /dev/null +++ b/docker/vars/acc.yml @@ -0,0 +1,5 @@ +--- +http_host: "acc.hopsngrains.com" +http_conf: "acc.hopsngrains.com.conf" +host_port: "8659" +host_directory: "brewman-acc" diff --git a/docker/vars/exp.yml b/docker/vars/exp.yml new file mode 100644 index 00000000..df3fc749 --- /dev/null +++ b/docker/vars/exp.yml @@ -0,0 +1,5 @@ +--- +http_host: "exp.tanshu.com" +http_conf: "exp.tanshu.com.conf" +host_port: "8656" +host_directory: "brewman-exp" diff --git a/docker/vars/hops.yml b/docker/vars/hops.yml new file mode 100644 index 00000000..93e05db4 --- /dev/null +++ b/docker/vars/hops.yml @@ -0,0 +1,5 @@ +--- +http_host: "hops.hopsngrains.com" +http_conf: "hops.hopsngrains.com.conf" +host_port: "8658" +host_directory: "brewman-hops" diff --git a/docker/vars/mhl.yml b/docker/vars/mhl.yml new file mode 100644 index 00000000..f03dfef1 --- /dev/null +++ b/docker/vars/mhl.yml @@ -0,0 +1,5 @@ +--- +http_host: "mhl.hopsngrains.com" +http_conf: "mhl.hopsngrains.com.conf" +host_port: "8657" +host_directory: "brewman-mhl"