1
0
This repository has been archived on 2025-09-29. You can view files and clone it, but cannot push or open issues or pull requests.
bachelor-thesis/webserver/hybrid.patch
2025-05-20 00:43:52 +02:00

204 lines
5.2 KiB
Diff

diff --color -ruN base/sandbox/docker-compose.yml hybrid/sandbox/docker-compose.yml
--- base/sandbox/docker-compose.yml 2025-05-16 19:46:23.713755709 +0200
+++ hybrid/sandbox/docker-compose.yml 2025-05-18 15:04:00.800680098 +0200
@@ -4,28 +4,16 @@
container_name: vaultwarden
restart: unless-stopped
networks:
- - nginx
- - vaultwarden
+ - internal
environment:
DOMAIN: "https://bitwarden.vm.local"
- DATABASE_URL: "postgres://vaultwarden:vaultwarden@vaultwarden-db:5432/vaultwarden"
+ DATABASE_URL: "postgres://vaultwarden:vaultwarden@postgres:5432/vaultwarden"
volumes:
- ./vw-data/:/data/
expose:
- 80
-
- vaultwarden-db:
- image: docker.io/library/postgres:latest
- container_name: vaultwarden-db
- restart: unless-stopped
- environment:
- POSTGRES_DB: vaultwarden
- POSTGRES_USER: vaultwarden
- POSTGRES_PASSWORD: vaultwarden
- volumes:
- - ./vw-postgres:/var/lib/postgresql/data
- networks:
- - vaultwarden
+ extra_hosts:
+ - "postgres:172.18.0.1"
gitea:
image: docker.gitea.com/gitea:latest
@@ -34,15 +22,14 @@
- USER_UID=1000
- USER_GID=1000
- GITEA__database__DB_TYPE=postgres
- - GITEA__database__HOST=gitea-db:5432
+ - GITEA__database__HOST=postgres:5432
- GITEA__database__NAME=gitea
- GITEA__database__USER=gitea
- GITEA__database__PASSWD=gitea
- GITEA__security__INSTALL_LOCK=true
restart: unless-stopped
networks:
- - nginx
- - gitea
+ - internal
volumes:
- ./gitea:/data
- /etc/timezone:/etc/timezone:ro
@@ -50,33 +37,24 @@
expose:
- 3000
- 22
-
- gitea-db:
- image: docker.io/library/postgres:latest
- container_name: gitea-db
- restart: unless-stopped
- environment:
- - POSTGRES_USER=gitea
- - POSTGRES_PASSWORD=gitea
- - POSTGRES_DB=gitea
- volumes:
- - ./postgres:/var/lib/postgresql/data
- networks:
- - gitea
+ extra_hosts:
+ - "postgres:172.18.0.1"
vulnerable:
build: /vagrant/sandbox/vuln
ports:
- 2222:22
networks:
- - nginx
+ - internal
+ extra_hosts:
+ - "postgres:172.18.0.1"
nginx:
image: nginx:latest
container_name: nginx
restart: unless-stopped
networks:
- - nginx
+ - internal
volumes:
- ./nginx.conf:/etc/nginx/conf.d/default.conf
- ./nginx/certs:/etc/nginx/certs
@@ -85,9 +63,9 @@
- 443:443
networks:
- nginx:
- driver: bridge
- gitea:
+ internal:
driver: bridge
- vaultwarden:
- driver: bridge
\ No newline at end of file
+ ipam:
+ config:
+ - subnet: 172.18.0.0/16
+ gateway: 172.18.0.1
\ No newline at end of file
diff --color -ruN base/sandbox/playbook.yml hybrid/sandbox/playbook.yml
--- base/sandbox/playbook.yml 2025-05-17 15:34:39.895845622 +0200
+++ hybrid/sandbox/playbook.yml 2025-05-17 15:34:46.781062066 +0200
@@ -15,6 +15,9 @@
- curl
- software-properties-common
- virtualenv
+ - python3-psycopg2
+ - postgresql
+ - acl
- bc
- sysstat
state: latest
@@ -150,6 +153,62 @@
name: ssh
state: restarted
+ - name: Ensure PostgreSQL service is running
+ service:
+ name: postgresql
+ state: started
+ enabled: yes
+
+ - name: Create PostgreSQL user for gitea
+ become: true
+ become_user: postgres
+ postgresql_user:
+ name: gitea
+ password: gitea
+ state: present
+
+ - name: Create PostgreSQL database for gitea
+ become: true
+ become_user: postgres
+ postgresql_db:
+ name: gitea
+ owner: gitea
+ state: present
+
+ - name: Create PostgreSQL user for vaultwarden
+ become: true
+ become_user: postgres
+ postgresql_user:
+ name: vaultwarden
+ password: vaultwarden
+ state: present
+
+ - name: Create PostgreSQL database for vaultwarden
+ become: true
+ become_user: postgres
+ postgresql_db:
+ name: vaultwarden
+ owner: vaultwarden
+ state: present
+
+ - name: Set PostgreSQL to listen on localhost and Docker bridge IP
+ become: yes
+ lineinfile:
+ path: /etc/postgresql/14/main/postgresql.conf
+ regexp: '^#?listen_addresses\s*='
+ line: "listen_addresses = 'localhost,172.18.0.1'"
+ notify: Restart PostgreSQL
+
+ - name: Allow connections from Docker subnet in pg_hba.conf
+ become: yes
+ lineinfile:
+ path: /etc/postgresql/14/main/pg_hba.conf
+ line: 'host all all 172.18.0.0/16 md5'
+ create: yes
+ insertafter: EOF
+ state: present
+ notify: Restart PostgreSQL
+
- name: Ensure Docker service is running
service:
name: docker
@@ -159,4 +218,12 @@
- name: Run docker compose up -d
command: docker compose up -d
args:
- chdir: /home/vagrant
\ No newline at end of file
+ chdir: /home/vagrant
+
+
+ handlers:
+ - name: Restart PostgreSQL
+ become: yes
+ service:
+ name: postgresql
+ state: restarted
\ No newline at end of file