Compare commits
	
		
			2 Commits
		
	
	
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| db8bb672d3 | |||
| ed9100bc8f | 
							
								
								
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							| @@ -1,5 +1,4 @@ | ||||
| .vagrant | ||||
| .vscode | ||||
| .playbook | ||||
| /*.yml | ||||
| /*.yaml | ||||
|   | ||||
							
								
								
									
										2
									
								
								Vagrantfile
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								Vagrantfile
									
									
									
									
										vendored
									
									
								
							| @@ -20,7 +20,7 @@ else | ||||
| end | ||||
|  | ||||
| Vagrant.configure("2") do |config| | ||||
|   config.vm.box = "debian/contrib-buster64" | ||||
|   config.vm.box = "debian/bullseye64" | ||||
|   config.vm.network "private_network", type: "dhcp" | ||||
|   config.vm.synced_folder ".", "/vagrant", disabled: true | ||||
|   config.vm.synced_folder "./scratch", "/vagrant/scratch" | ||||
|   | ||||
							
								
								
									
										17
									
								
								dev/host_vars/mediawiki.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								dev/host_vars/mediawiki.yml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,17 @@ | ||||
| # base | ||||
| allow_reboot: false | ||||
| manage_network: false | ||||
|  | ||||
| # docker | ||||
| docker_users: | ||||
|   - vagrant | ||||
|  | ||||
| # traefik | ||||
| traefik_version: latest | ||||
| traefik_dashboard: true | ||||
| traefik_domain: traefik.vm.krislamo.org | ||||
| traefik_auth: admin:$apr1$T1l.BCFz$Jyg8msXYEAUi3LLH39I9d1 # admin:admin | ||||
| #traefik_acme_email: realemail@example.com # Let's Encrypt settings | ||||
| #traefik_production: true | ||||
|  | ||||
| # mediawiki | ||||
							
								
								
									
										10
									
								
								dev/mediawiki.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								dev/mediawiki.yml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,10 @@ | ||||
| - name: Install MediaWiki Server | ||||
|   hosts: all | ||||
|   become: true | ||||
|   vars_files: | ||||
|     - host_vars/mediawiki.yml | ||||
|   roles: | ||||
|     - base | ||||
|     - docker | ||||
|     - traefik | ||||
|     - mediawiki | ||||
| @@ -20,7 +20,7 @@ | ||||
|     - docker | ||||
|     - traefik | ||||
|     - nextcloud | ||||
| #    - gitea | ||||
|     - gitea | ||||
|     - jenkins | ||||
|     - prometheus | ||||
|     - nginx | ||||
|   | ||||
							
								
								
									
										1
									
								
								roles/.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								roles/.gitignore
									
									
									
									
										vendored
									
									
								
							| @@ -7,6 +7,7 @@ | ||||
| !gitea*/ | ||||
| !jenkins*/ | ||||
| !libvirt*/ | ||||
| !mediawiki*/ | ||||
| !minecraft*/ | ||||
| !nextcloud*/ | ||||
| !nginx*/ | ||||
|   | ||||
| @@ -47,6 +47,7 @@ | ||||
|     labels: | ||||
|       traefik.http.routers.gitea.rule: "Host(`{{ gitea_domain }}`)" | ||||
|       traefik.http.routers.gitea.entrypoints: websecure | ||||
|       traefik.http.routers.gitea.tls.certresolver: letsencrypt | ||||
|       traefik.http.routers.gitea.middlewares: "securehttps@file" | ||||
|       traefik.http.services.gitea.loadbalancer.server.port: "3000" | ||||
|       traefik.docker.network: traefik | ||||
|   | ||||
| @@ -20,6 +20,7 @@ | ||||
|     labels: | ||||
|       traefik.http.routers.jenkins.rule: "Host(`{{ jenkins_domain }}`)" | ||||
|       traefik.http.routers.jenkins.entrypoints: websecure | ||||
|       traefik.http.routers.jenkins.tls.certresolver: letsencrypt | ||||
|       traefik.http.routers.jenkins.middlewares: "securehttps@file" | ||||
|       traefik.docker.network: traefik | ||||
|       traefik.enable: "true" | ||||
|   | ||||
							
								
								
									
										1
									
								
								roles/mediawiki/defaults/main.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								roles/mediawiki/defaults/main.yml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1 @@ | ||||
| mediawiki_name: mediawiki | ||||
							
								
								
									
										51
									
								
								roles/mediawiki/tasks/main.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										51
									
								
								roles/mediawiki/tasks/main.yml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,51 @@ | ||||
| - name: Create MediaWiki Network | ||||
|   docker_network: | ||||
|     name: "{{ mediawiki_name }}" | ||||
|  | ||||
| - name: Start MediaWiki's database container | ||||
|   docker_container: | ||||
|     name: "{{ mediawiki_dbname }}" | ||||
|     image: mariadb:{{ mediawiki_dbversion }} | ||||
|     state: started | ||||
|     restart_policy: always | ||||
|     volumes: "{{ mediawiki_dbroot }}:/var/lib/mysql" | ||||
|     networks_cli_compatible: true | ||||
|     networks: | ||||
|       - name: "{{ mediawiki_name }}" | ||||
|     env: | ||||
|       MYSQL_RANDOM_ROOT_PASSWORD: "true" | ||||
|       MYSQL_DATABASE: "{{ mediawiki_dbname }}" | ||||
|       MYSQL_USER: "{{ mediawiki_dbuser }}" | ||||
|       MYSQL_PASSWORD: "{{ mediawiki_dbpass }}" | ||||
|  | ||||
| - name: Start mediawiki container | ||||
|   docker_container: | ||||
|     name: "{{ mediawiki_name }}" | ||||
|     image: mediawiki/mediawiki:{{ mediawiki_version }} | ||||
|     state: started | ||||
|     restart_policy: always | ||||
|     networks_cli_compatible: true | ||||
|     ports: "{{ mediawiki_ports }}" | ||||
|     networks: | ||||
|       - name: "{{ mediawiki_name }}" | ||||
|       - name: traefik | ||||
| #    volumes: | ||||
| #    env: | ||||
| #      USER_UID: "1000" | ||||
| #      USER_GID: "1000" | ||||
| #      DB_TYPE: mysql | ||||
| #      DB_HOST: "{{ gitea_dbname }}" | ||||
| #      DB_NAME: "{{ gitea_dbname }}" | ||||
| #      DB_USER: "{{ gitea_dbuser }}" | ||||
| #      DB_PASSWD: "{{ gitea_dbpass }}" | ||||
| #      ROOT_URL: "https://{{ gitea_domain }}/" | ||||
| #      SSH_DOMAIN: "{{ gitea_domain }}" | ||||
| #      DOMAIN: "{{ gitea_domain }}" | ||||
| #    labels: | ||||
| #      traefik.http.routers.gitea.rule: "Host(`{{ gitea_domain }}`)" | ||||
| #      traefik.http.routers.gitea.entrypoints: websecure | ||||
| #      traefik.http.routers.gitea.tls.certresolver: letsencrypt | ||||
| #      traefik.http.routers.gitea.middlewares: "securehttps@file" | ||||
| #      traefik.http.services.gitea.loadbalancer.server.port: "3000" | ||||
| #      traefik.docker.network: traefik | ||||
| #      traefik.enable: "true" | ||||
| @@ -32,6 +32,7 @@ | ||||
|     labels: | ||||
|       traefik.http.routers.nextcloud.rule: "Host(`{{ nextcloud_domain }}`)" | ||||
|       traefik.http.routers.nextcloud.entrypoints: websecure | ||||
|       traefik.http.routers.nextcloud.tls.certresolver: letsencrypt | ||||
|       traefik.http.routers.nextcloud.middlewares: "securehttps@file,nextcloud-webdav" | ||||
|       traefik.http.middlewares.nextcloud-webdav.redirectregex.regex: "https://(.*)/.well-known/(card|cal)dav" | ||||
|       traefik.http.middlewares.nextcloud-webdav.redirectregex.replacement: "https://${1}/remote.php/dav/" | ||||
|   | ||||
| @@ -29,8 +29,9 @@ | ||||
|       - "{{ nginx_html }}:/usr/share/nginx/html:ro" | ||||
|     labels: | ||||
|       traefik.http.routers.nginx.rule: "Host(`{{ nginx_domain }}`)" | ||||
|       #traefik.http.middlewares.nginxauth.basicauth.users: "{{ nginx_auth }}" | ||||
|       traefik.http.middlewares.nginxauth.basicauth.users: "{{ nginx_auth }}" | ||||
|       traefik.http.routers.nginx.entrypoints: websecure | ||||
|       traefik.http.routers.nginx.middlewares: "securehttps@file" | ||||
|       traefik.http.routers.nginx.tls.certresolver: letsencrypt | ||||
|       traefik.http.routers.nginx.middlewares: "securehttps@file,nginxauth" | ||||
|       traefik.docker.network: traefik | ||||
|       traefik.enable: "true" | ||||
|   | ||||
| @@ -45,6 +45,7 @@ | ||||
|       traefik.http.routers.prometheus.rule: "Host(`{{ prom_domain }}`)" | ||||
|       traefik.http.routers.prometheus.entrypoints: websecure | ||||
|       traefik.http.routers.prometheus.middlewares: "securehttps@file,localonly" | ||||
|       traefik.http.routers.prometheus.tls.certresolver: letsencrypt | ||||
|       traefik.http.middlewares.localonly.ipwhitelist.sourcerange: "{{ traefik_localonly }}" | ||||
|       traefik.docker.network: traefik | ||||
|       traefik.enable: "true" | ||||
| @@ -64,6 +65,7 @@ | ||||
|     labels: | ||||
|       traefik.http.routers.grafana.rule: "Host(`{{ grafana_domain }}`)" | ||||
|       traefik.http.routers.grafana.entrypoints: websecure | ||||
|       traefik.http.routers.grafana.tls.certresolver: letsencrypt | ||||
|       traefik.http.routers.grafana.middlewares: "securehttps@file" | ||||
|       traefik.docker.network: traefik | ||||
|       traefik.enable: "true" | ||||
|   | ||||
| @@ -41,9 +41,10 @@ | ||||
|       - name: traefik | ||||
|     labels: | ||||
|       traefik.http.routers.traefik.rule: "Host(`{{ traefik_domain }}`)" | ||||
|       #traefik.http.middlewares.auth.basicauth.users: "{{ traefik_auth }}" | ||||
|       #traefik.http.middlewares.localonly.ipwhitelist.sourcerange: "{{ traefik_localonly }}" | ||||
|       traefik.http.routers.traefik.middlewares: "securehttps@file" | ||||
|       traefik.http.middlewares.auth.basicauth.users: "{{ traefik_auth }}" | ||||
|       traefik.http.middlewares.localonly.ipwhitelist.sourcerange: "{{ traefik_localonly }}" | ||||
|       traefik.http.routers.traefik.tls.certresolver: letsencrypt | ||||
|       traefik.http.routers.traefik.middlewares: "securehttps@file,auth@docker,localonly" | ||||
|       traefik.http.routers.traefik.service: "api@internal" | ||||
|       traefik.http.routers.traefik.entrypoints: websecure | ||||
|       traefik.http.routers.traefik.tls: "true" | ||||
|   | ||||
		Reference in New Issue
	
	Block a user