mirror of
				https://github.com/CPunch/openpunk-ansible.git
				synced 2025-10-31 04:40:12 +00:00 
			
		
		
		
	Compare commits
	
		
			14 Commits
		
	
	
		
			3047267d19
			...
			main
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 1acd6411cb | |||
| c9cd0c3c12 | |||
| 899dc392df | |||
| f71c3f6233 | |||
| 219bd304d6 | |||
| 5171a308be | |||
| 2686eddf88 | |||
| ab5b7c1d29 | |||
| 540f63cd85 | |||
| 262e350f7b | |||
| 454d91977c | |||
| 74e55ef1b9 | |||
| 5212ca61bd | |||
| 52d526bf5c | 
							
								
								
									
										11
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										11
									
								
								README.md
									
									
									
									
									
								
							| @@ -24,7 +24,16 @@ ssh openpunk 'touch /root/.deadtrigger' | |||||||
| Some DNS records also need to be set: | Some DNS records also need to be set: | ||||||
| - an A record with a `git.*` subdomain | - an A record with a `git.*` subdomain | ||||||
|  |  | ||||||
|  | A Gitea Act Runner is also setup if the `giteaRunnerToken` variable is defined in your hosts file. | ||||||
|  |  | ||||||
| ## Usage | ## Usage | ||||||
|  | First, make sure to install the requirements: | ||||||
|  | ```sh | ||||||
|  | ansible-galaxy install -r requirements.yml | ||||||
|  | ``` | ||||||
|  |  | ||||||
|  | Then, run the playbook: | ||||||
|  |  | ||||||
| ```sh | ```sh | ||||||
| ansible-playbook -i hosts --ask-vault-pass run.yml | ansible-playbook -i hosts --ask-vault-pass run.yml | ||||||
| ``` | ``` | ||||||
| @@ -45,5 +54,5 @@ ansible-playbook -i hosts run.yml --tags restore | |||||||
| ## Example hosts file | ## Example hosts file | ||||||
| ``` | ``` | ||||||
| [hosts] | [hosts] | ||||||
| openpunk-vps ansible_host=104.238.138.76 ansible_user=root ansible_connection=ssh | openpunk-vps ansible_host=104.238.138.76 ansible_user=root ansible_connection=ssh giteaRunnerToken=my-token-yayy | ||||||
| ``` | ``` | ||||||
| @@ -1,4 +1,5 @@ | |||||||
| --- | --- | ||||||
| domain: openpunk.com | domain: openpunk.com | ||||||
| contact_email: openpunk@proton.me | contact_email: openpunk@proton.me | ||||||
| onionDomain: http://opnpnk6eutjiqy4ndpyvwxd5pncj2g2cmz6fkocr5uh3omnn4utvspad.onion | onionDomain: opnpnk6eutjiqy4ndpyvwxd5pncj2g2cmz6fkocr5uh3omnn4utvspad.onion | ||||||
|  | giteaPort: 3000 | ||||||
							
								
								
									
										12
									
								
								requirements.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								requirements.yml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,12 @@ | |||||||
|  | - src: https://github.com/roles-ansible/ansible_role_gitea.git | ||||||
|  |   scm: git | ||||||
|  |   version: v3.5.0 | ||||||
|  |   name: l3d.gitea | ||||||
|  | - src: https://github.com/geerlingguy/ansible-role-nginx.git | ||||||
|  |   scm: git | ||||||
|  |   version: 3.2.0 | ||||||
|  |   name: geerlingguy.nginx | ||||||
|  | - src: https://github.com/geerlingguy/ansible-role-certbot.git | ||||||
|  |   scm: git | ||||||
|  |   version: 5.1.1 | ||||||
|  |   name: geerlingguy.certbot | ||||||
| @@ -6,7 +6,7 @@ TOR_DIR=tor | |||||||
|  |  | ||||||
| buildBlog () { | buildBlog () { | ||||||
|     hugo --cleanDestinationDir --minify -d $PUBLIC_DIR -b https://{{ domain }} |     hugo --cleanDestinationDir --minify -d $PUBLIC_DIR -b https://{{ domain }} | ||||||
|     hugo --cleanDestinationDir --minify -d $TOR_DIR -b {{ onionDomain }} |     hugo --cleanDestinationDir --minify -d $TOR_DIR -b http://{{ onionDomain }} | ||||||
| } | } | ||||||
|  |  | ||||||
| git fetch origin | git fetch origin | ||||||
|   | |||||||
| @@ -19,6 +19,31 @@ | |||||||
|       - zsh # :D |       - zsh # :D | ||||||
|       - python3-certbot-nginx |       - python3-certbot-nginx | ||||||
|  |  | ||||||
|  | - name: Add Docker GPG apt Key | ||||||
|  |   apt_key: | ||||||
|  |     url: https://download.docker.com/linux/ubuntu/gpg | ||||||
|  |     state: present | ||||||
|  |  | ||||||
|  | - name: Add Docker Repository | ||||||
|  |   apt_repository: | ||||||
|  |     repo: deb https://download.docker.com/linux/ubuntu focal stable | ||||||
|  |     state: present | ||||||
|  |  | ||||||
|  | - name: Update apt and install Docker packages | ||||||
|  |   apt: | ||||||
|  |     name: | ||||||
|  |       - docker-ce | ||||||
|  |       - docker-ce-cli | ||||||
|  |       - containerd.io | ||||||
|  |       - docker-compose | ||||||
|  |     state: latest | ||||||
|  |     update_cache: true | ||||||
|  |  | ||||||
|  | - name: Start docker  | ||||||
|  |   systemd: | ||||||
|  |     name: docker | ||||||
|  |     state: started | ||||||
|  |  | ||||||
| - name: Grab package facts | - name: Grab package facts | ||||||
|   package_facts: |   package_facts: | ||||||
|     manager: auto |     manager: auto | ||||||
|   | |||||||
| @@ -1,7 +1,7 @@ | |||||||
| [user] | [user] | ||||||
|         email = openpunk@proton.me | email = openpunk@proton.me | ||||||
|         name = OpenPunk | name = OpenPunk | ||||||
| [core] | [core] | ||||||
|         editor = nano | editor = nano | ||||||
| [pull] | [pull] | ||||||
|         rebase = true | rebase = true | ||||||
|   | |||||||
| @@ -1,3 +1,4 @@ | |||||||
| --- | --- | ||||||
| giteaPort: 3000 | giteaPort: 3000 | ||||||
| giteaBackup: backups/gitea-dump.zip | giteaBackup: backups/gitea-dump.zip # local path | ||||||
|  | runnerPath: "{{ ansible_env.HOME }}/runner" | ||||||
							
								
								
									
										94
									
								
								roles/gitea/files/runner-config.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										94
									
								
								roles/gitea/files/runner-config.yml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,94 @@ | |||||||
|  | # Example configuration file, it's safe to copy this as the default config file without any modification. | ||||||
|  |  | ||||||
|  | # You don't have to copy this file to your instance, | ||||||
|  | # just run `./act_runner generate-config > config.yaml` to generate a config file. | ||||||
|  |  | ||||||
|  | log: | ||||||
|  |   # The level of logging, can be trace, debug, info, warn, error, fatal | ||||||
|  |   level: info | ||||||
|  |  | ||||||
|  | runner: | ||||||
|  |   # Where to store the registration result. | ||||||
|  |   file: .runner | ||||||
|  |   # Execute how many tasks concurrently at the same time. | ||||||
|  |   capacity: 2 | ||||||
|  |   # Extra environment variables to run jobs from a file. | ||||||
|  |   # It will be ignored if it's empty or the file doesn't exist. | ||||||
|  |   env_file: .env | ||||||
|  |   # The timeout for a job to be finished. | ||||||
|  |   # Please note that the Gitea instance also has a timeout (3h by default) for the job. | ||||||
|  |   # So the job could be stopped by the Gitea instance if it's timeout is shorter than this. | ||||||
|  |   timeout: 3h | ||||||
|  |   # Whether skip verifying the TLS certificate of the Gitea instance. | ||||||
|  |   insecure: false | ||||||
|  |   # The timeout for fetching the job from the Gitea instance. | ||||||
|  |   fetch_timeout: 5s | ||||||
|  |   # The interval for fetching the job from the Gitea instance. | ||||||
|  |   fetch_interval: 2s | ||||||
|  |   # The labels of a runner are used to determine which jobs the runner can run, and how to run them. | ||||||
|  |   # Like: "macos-arm64:host" or "ubuntu-latest:docker://gitea/runner-images:ubuntu-latest" | ||||||
|  |   # Find more images provided by Gitea at https://gitea.com/gitea/runner-images . | ||||||
|  |   # If it's empty when registering, it will ask for inputting labels. | ||||||
|  |   # If it's empty when execute `daemon`, will use labels in `.runner` file. | ||||||
|  |   labels: | ||||||
|  |     - "ubuntu-latest:docker://gitea/runner-images:ubuntu-latest" | ||||||
|  |     - "ubuntu-22.04:docker://gitea/runner-images:ubuntu-22.04" | ||||||
|  |     - "ubuntu-20.04:docker://gitea/runner-images:ubuntu-20.04" | ||||||
|  |  | ||||||
|  | cache: | ||||||
|  |   # Enable cache server to use actions/cache. | ||||||
|  |   enabled: true | ||||||
|  |   # The directory to store the cache data. | ||||||
|  |   # If it's empty, the cache data will be stored in $HOME/.cache/actcache. | ||||||
|  |   dir: "/data" | ||||||
|  |   # The host of the cache server. | ||||||
|  |   # It's not for the address to listen, but the address to connect from job containers. | ||||||
|  |   # So 0.0.0.0 is a bad choice, leave it empty to detect automatically. | ||||||
|  |   host: "" | ||||||
|  |   # The port of the cache server. | ||||||
|  |   # 0 means to use a random available port. | ||||||
|  |   port: 18088 | ||||||
|  |   # The external cache server URL. Valid only when enable is true. | ||||||
|  |   # If it's specified, act_runner will use this URL as the ACTIONS_CACHE_URL rather than start a server by itself. | ||||||
|  |   # The URL should generally end with "/". | ||||||
|  |   external_server: "" | ||||||
|  |  | ||||||
|  | container: | ||||||
|  |   # Specifies the network to which the container will connect. | ||||||
|  |   # Could be host, bridge or the name of a custom network. | ||||||
|  |   # If it's empty, act_runner will create a network automatically. | ||||||
|  |   network: "runner-cache" | ||||||
|  |   # Whether to use privileged mode or not when launching task containers (privileged mode is required for Docker-in-Docker). | ||||||
|  |   privileged: false | ||||||
|  |   # And other options to be used when the container is started (eg, --add-host=my.gitea.url:host-gateway). | ||||||
|  |   options: | ||||||
|  |   # The parent directory of a job's working directory. | ||||||
|  |   # NOTE: There is no need to add the first '/' of the path as act_runner will add it automatically.  | ||||||
|  |   # If the path starts with '/', the '/' will be trimmed. | ||||||
|  |   # For example, if the parent directory is /path/to/my/dir, workdir_parent should be path/to/my/dir | ||||||
|  |   # If it's empty, /workspace will be used. | ||||||
|  |   workdir_parent: | ||||||
|  |   # Volumes (including bind mounts) can be mounted to containers. Glob syntax is supported, see https://github.com/gobwas/glob | ||||||
|  |   # You can specify multiple volumes. If the sequence is empty, no volumes can be mounted. | ||||||
|  |   # For example, if you only allow containers to mount the `data` volume and all the json files in `/src`, you should change the config to: | ||||||
|  |   # valid_volumes: | ||||||
|  |   #   - data | ||||||
|  |   #   - /src/*.json | ||||||
|  |   # If you want to allow any volume, please use the following configuration: | ||||||
|  |   # valid_volumes: | ||||||
|  |   #   - '**' | ||||||
|  |   valid_volumes: [] | ||||||
|  |   # overrides the docker client host with the specified one. | ||||||
|  |   # If it's empty, act_runner will find an available docker host automatically. | ||||||
|  |   # If it's "-", act_runner will find an available docker host automatically, but the docker host won't be mounted to the job containers and service containers. | ||||||
|  |   # If it's not empty or "-", the specified docker host will be used. An error will be returned if it doesn't work. | ||||||
|  |   docker_host: "" | ||||||
|  |   # Pull docker image(s) even if already present | ||||||
|  |   force_pull: true | ||||||
|  |   # Rebuild docker image(s) even if already present | ||||||
|  |   force_rebuild: false | ||||||
|  |  | ||||||
|  | host: | ||||||
|  |   # The parent directory of a job's working directory. | ||||||
|  |   # If it's empty, $HOME/.cache/act/ will be used. | ||||||
|  |   workdir_parent: | ||||||
| @@ -17,7 +17,7 @@ | |||||||
|  |  | ||||||
| - name: Dump Gitea | - name: Dump Gitea | ||||||
|   shell: |   shell: | ||||||
|     cmd: gitea dump -c /etc/gitea/app.ini --work-path=/etc/gitea --file=gitea-dump.zip --tempdir=/etc/gitea/temp |     cmd: gitea dump -c /etc/gitea/gitea.ini --work-path=/etc/gitea --file=gitea-dump.zip --tempdir=/etc/gitea/temp | ||||||
|     chdir: /etc/gitea |     chdir: /etc/gitea | ||||||
|   become: true |   become: true | ||||||
|   become_method: su |   become_method: su | ||||||
| @@ -33,7 +33,7 @@ | |||||||
|  |  | ||||||
| - name: Remove remote dump | - name: Remove remote dump | ||||||
|   file: |   file: | ||||||
|     path: "{{ giteaBackup }}" |     path: /etc/gitea/gitea-dump.zip | ||||||
|     state: absent |     state: absent | ||||||
|   tags: backup |   tags: backup | ||||||
|  |  | ||||||
|   | |||||||
| @@ -1,30 +1,25 @@ | |||||||
| --- | --- | ||||||
| - name: Check for Gitea gpg key | - name: "Install gitea" | ||||||
|   stat: |   include_role: | ||||||
|     path: /etc/apt/trusted.gpg.d/morph027-gitea.gpg |     name: l3d.gitea | ||||||
|   register: gitea_key |   vars: | ||||||
|  |     gitea_fqdn: 'git.{{ domain }}' | ||||||
|  |     gitea_home: '/var/lib/gitea' | ||||||
|  |     gitea_db_type: 'sqlite3' | ||||||
|  |     gitea_theme_default: 'gitea-dark' | ||||||
|  |     gitea_root_url: 'https://git.{{ domain }}' | ||||||
|  |     gitea_protocol: http | ||||||
|  |     gitea_http_port: "{{ giteaPort }}" | ||||||
|  |     gitea_ssh_port: 22 | ||||||
|  |     gitea_start_ssh: false | ||||||
|  |     gitea_allow_only_internal_registration: true | ||||||
|  |     gitea_disable_registration: true | ||||||
|  |     gitea_require_signin: false | ||||||
|  |     gitea_lfs_server_enabled: true | ||||||
|  |  | ||||||
| - name: Add Gitea key, repository && install | - name: "Start Gitea Act Runner" | ||||||
|   block: |   include_tasks: runner.yml | ||||||
|     - name: Import Gitea key |   when: giteaRunnerToken is defined | ||||||
|       shell: curl -s https://packaging.gitlab.io/gitea/gpg.key | sudo gpg --no-default-keyring --keyring gnupg-ring:/etc/apt/trusted.gpg.d/morph027-gitea.gpg --import && sudo chmod 644 /etc/apt/trusted.gpg.d/morph027-gitea.gpg |  | ||||||
|       when: gitea_key.stat.exists == false or gitea_key.stat.mode != "0644" |  | ||||||
|  |  | ||||||
|     - name: Add Gitea repository |  | ||||||
|       apt_repository: |  | ||||||
|         filename: morph027-gitea |  | ||||||
|         repo: deb https://packaging.gitlab.io/gitea gitea main |  | ||||||
|  |  | ||||||
|     - name: Add Gitea package |  | ||||||
|       package: |  | ||||||
|         name: gitea |  | ||||||
|  |  | ||||||
|     - name: Configure Gitea |  | ||||||
|       template: |  | ||||||
|         src: templates/app.ini |  | ||||||
|         dest: /etc/gitea/app.ini |  | ||||||
|         owner: gitea |  | ||||||
|   when: "'gitea' not in ansible_facts.packages" |  | ||||||
|  |  | ||||||
| - name: Backup db | - name: Backup db | ||||||
|   include_tasks: backup.yml |   include_tasks: backup.yml | ||||||
|   | |||||||
| @@ -55,17 +55,23 @@ | |||||||
| - name: Install repositories | - name: Install repositories | ||||||
|   copy: |   copy: | ||||||
|     src: /etc/gitea/gitea-dump/repos/ |     src: /etc/gitea/gitea-dump/repos/ | ||||||
|     dest: /var/lib/gitea/gitea-repositories/ |     dest: /var/lib/gitea/repos/ | ||||||
|     remote_src: true |     remote_src: true | ||||||
|     owner: gitea |     owner: gitea | ||||||
|   tags: restore |   tags: restore | ||||||
|  |  | ||||||
| - name: Install config | # - name: Install config | ||||||
|   copy: | #   copy: | ||||||
|     src: /etc/gitea/gitea-dump/app.ini | #     src: /etc/gitea/gitea-dump/app.ini | ||||||
|     dest: /etc/gitea/app.ini | #     dest: /etc/gitea/app.ini | ||||||
|     owner: gitea | #     owner: gitea | ||||||
|     remote_src: true | #     remote_src: true | ||||||
|  | #   tags: restore | ||||||
|  |  | ||||||
|  | - name: Remove sqlite3 db | ||||||
|  |   file: | ||||||
|  |     path: /var/lib/gitea/data/gitea.db | ||||||
|  |     state: absent | ||||||
|   tags: restore |   tags: restore | ||||||
|  |  | ||||||
| - name: Generate sqlite3 db | - name: Generate sqlite3 db | ||||||
| @@ -83,9 +89,7 @@ | |||||||
|   tags: restore |   tags: restore | ||||||
|  |  | ||||||
| - name: Finalize | - name: Finalize | ||||||
|   shell: |   shell: gitea admin regenerate hooks -c /etc/gitea/gitea.ini | ||||||
|     cmd: ./gitea admin regenerate hooks -c /etc/gitea/app.ini |  | ||||||
|     chdir: /usr/bin |  | ||||||
|   become: true |   become: true | ||||||
|   become_method: su |   become_method: su | ||||||
|   become_user: gitea |   become_user: gitea | ||||||
|   | |||||||
							
								
								
									
										27
									
								
								roles/gitea/tasks/runner.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										27
									
								
								roles/gitea/tasks/runner.yml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,27 @@ | |||||||
|  | - name: Make dirs for runner | ||||||
|  |   file: | ||||||
|  |     path: "{{ item }}" | ||||||
|  |     state: directory | ||||||
|  |   loop: | ||||||
|  |     - "{{ runnerPath }}" | ||||||
|  |     - "{{ runnerPath }}/data" | ||||||
|  |  | ||||||
|  | - name: Copy docker-compose.yml to server | ||||||
|  |   template: | ||||||
|  |     src: ./templates/runner-docker-compose.yml | ||||||
|  |     dest: "{{ runnerPath }}/docker-compose.yml" | ||||||
|  |  | ||||||
|  | - name: Copy runner.env to server | ||||||
|  |   template: | ||||||
|  |     src: ./templates/runner.env | ||||||
|  |     dest: "{{ runnerPath }}/runner.env" | ||||||
|  |  | ||||||
|  | - name: Copy runner-config.yml to server | ||||||
|  |   copy: | ||||||
|  |     src: ./files/runner-config.yml | ||||||
|  |     dest: "{{ runnerPath }}/config.yaml" | ||||||
|  |  | ||||||
|  | - name: Start Gitea runner service | ||||||
|  |   community.docker.docker_compose_v2: | ||||||
|  |     project_src: "{{ runnerPath }}" | ||||||
|  |     state: present | ||||||
| @@ -1,61 +0,0 @@ | |||||||
| APP_NAME = OpenPunk Gitea |  | ||||||
| RUN_USER = gitea |  | ||||||
| RUN_MODE = prod |  | ||||||
|  |  | ||||||
| [database] |  | ||||||
| DB_TYPE  = sqlite3 |  | ||||||
| HOST     = 127.0.0.1:5432 |  | ||||||
| NAME     = gitea |  | ||||||
| USER     = gitea |  | ||||||
| PASSWD   =  |  | ||||||
| SSL_MODE = disable |  | ||||||
| CHARSET  = utf8 |  | ||||||
| PATH     = /var/lib/gitea/data/gitea.db |  | ||||||
|  |  | ||||||
| [repository] |  | ||||||
| ROOT = /var/lib/gitea/gitea-repositories |  | ||||||
|  |  | ||||||
| [server] |  | ||||||
| SSH_DOMAIN       = git.{{ domain }} |  | ||||||
| DOMAIN           = git.{{ domain }} |  | ||||||
| HTTP_PORT        = {{ giteaPort }} |  | ||||||
| ROOT_URL         = https://git.{{ domain }}/ |  | ||||||
| DISABLE_SSH      = false |  | ||||||
| SSH_PORT         = 22 |  | ||||||
| LFS_START_SERVER = false |  | ||||||
| OFFLINE_MODE     = false |  | ||||||
|  |  | ||||||
| [mailer] |  | ||||||
| ENABLED = false |  | ||||||
|  |  | ||||||
| [service] |  | ||||||
| REGISTER_EMAIL_CONFIRM            = false |  | ||||||
| ENABLE_NOTIFY_MAIL                = false |  | ||||||
| DISABLE_REGISTRATION              = true |  | ||||||
| ALLOW_ONLY_EXTERNAL_REGISTRATION  = false |  | ||||||
| ENABLE_CAPTCHA                    = false |  | ||||||
| REQUIRE_SIGNIN_VIEW               = false |  | ||||||
| DEFAULT_KEEP_EMAIL_PRIVATE        = false |  | ||||||
| DEFAULT_ALLOW_CREATE_ORGANIZATION = true |  | ||||||
| DEFAULT_ENABLE_TIMETRACKING       = true |  | ||||||
| NO_REPLY_ADDRESS                  = noreply.localhost |  | ||||||
|  |  | ||||||
| [picture] |  | ||||||
| DISABLE_GRAVATAR        = true |  | ||||||
| ENABLE_FEDERATED_AVATAR = false |  | ||||||
| REPOSITORY_AVATAR_FALLBACK = random |  | ||||||
|  |  | ||||||
| [openid] |  | ||||||
| ENABLE_OPENID_SIGNIN = false |  | ||||||
| ENABLE_OPENID_SIGNUP = false |  | ||||||
|  |  | ||||||
| [session] |  | ||||||
| PROVIDER = file |  | ||||||
|  |  | ||||||
| [log] |  | ||||||
| MODE      = file |  | ||||||
| LEVEL     = info |  | ||||||
| ROOT_PATH = /var/lib/gitea/log |  | ||||||
|  |  | ||||||
| [ui] |  | ||||||
| DEFAULT_THEME = arc-green |  | ||||||
							
								
								
									
										21
									
								
								roles/gitea/templates/runner-docker-compose.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								roles/gitea/templates/runner-docker-compose.yml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,21 @@ | |||||||
|  | services: | ||||||
|  |   runner: | ||||||
|  |     image: gitea/act_runner:latest | ||||||
|  |     environment: | ||||||
|  |       CONFIG_FILE: /config.yaml | ||||||
|  |       GITEA_INSTANCE_URL: "https://git.{{ domain }}" | ||||||
|  |     env_file: | ||||||
|  |       - ./runner.env | ||||||
|  |     volumes: | ||||||
|  |       - ./config.yaml:/config.yaml | ||||||
|  |       - ./data:/data | ||||||
|  |       - /var/run/docker.sock:/var/run/docker.sock | ||||||
|  |     ports: | ||||||
|  |       - 18088:18088 | ||||||
|  |     networks: | ||||||
|  |       - runner-cache | ||||||
|  |  | ||||||
|  | networks: | ||||||
|  |   runner-cache: | ||||||
|  |     name: runner-cache | ||||||
|  |     driver: bridge | ||||||
							
								
								
									
										1
									
								
								roles/gitea/templates/runner.env
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								roles/gitea/templates/runner.env
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1 @@ | |||||||
|  | GITEA_RUNNER_REGISTRATION_TOKEN="{{ giteaRunnerToken }}" | ||||||
| @@ -1,2 +0,0 @@ | |||||||
| --- |  | ||||||
| giteaPort: 3000 |  | ||||||
| @@ -1,52 +0,0 @@ | |||||||
| user www-data; |  | ||||||
| worker_processes auto; |  | ||||||
| include /etc/nginx/modules-enabled/*.conf; |  | ||||||
| pid /run/nginx.pid; |  | ||||||
|   |  | ||||||
| events { |  | ||||||
|     worker_connections 768; |  | ||||||
| } |  | ||||||
|  |  | ||||||
| http { |  | ||||||
|  |  | ||||||
|     ## |  | ||||||
|     # Basic Settings |  | ||||||
|     ## |  | ||||||
|  |  | ||||||
|     sendfile on; |  | ||||||
|     tcp_nopush on; |  | ||||||
|     tcp_nodelay on; |  | ||||||
|     keepalive_timeout 65; |  | ||||||
|     types_hash_max_size 2048; |  | ||||||
|  |  | ||||||
|     include /etc/nginx/mime.types; |  | ||||||
|     default_type application/octet-stream; |  | ||||||
|  |  | ||||||
|     ## |  | ||||||
|     # SSL Settings |  | ||||||
|     ## |  | ||||||
|  |  | ||||||
|     ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3; # Dropping SSLv3, ref: POODLE |  | ||||||
|     ssl_prefer_server_ciphers on; |  | ||||||
|  |  | ||||||
|     ## |  | ||||||
|     # Logging Settings |  | ||||||
|     ## |  | ||||||
|  |  | ||||||
|     access_log /var/log/nginx/access.log; |  | ||||||
|     error_log /var/log/nginx/error.log; |  | ||||||
|  |  | ||||||
|     ## |  | ||||||
|     # Gzip Settings |  | ||||||
|     ## |  | ||||||
|  |  | ||||||
|     gzip on; |  | ||||||
|     gzip_disable "msie6"; |  | ||||||
|  |  | ||||||
|     ## |  | ||||||
|     # Virtual Host Configs |  | ||||||
|     ## |  | ||||||
|  |  | ||||||
|     include /etc/nginx/conf.d/*.conf; |  | ||||||
|     include /etc/nginx/sites-enabled/*; |  | ||||||
| } |  | ||||||
| @@ -1,4 +0,0 @@ | |||||||
| --- |  | ||||||
| - name: setup-nginx |  | ||||||
|   include_tasks: setup.yml |  | ||||||
|   listen: "setup nginx" |  | ||||||
| @@ -1,35 +1,81 @@ | |||||||
| --- | --- | ||||||
| - name: Install system nginx config | - name: "Stop Nginx" | ||||||
|   copy: |  | ||||||
|     src: nginx.conf |  | ||||||
|     dest: /etc/nginx/nginx.conf |  | ||||||
|   notify: setup nginx |  | ||||||
|  |  | ||||||
| # setup our configs for each host (we don't want to  |  | ||||||
| # overwrite certbot's changes, so if it already exists, |  | ||||||
| # don't copy!) |  | ||||||
|  |  | ||||||
| - name: Install nginx config for {{ domain }} |  | ||||||
|   template: |  | ||||||
|     src: templates/site.conf |  | ||||||
|     dest: /etc/nginx/conf.d/{{ domain }}.conf |  | ||||||
|     force: no |  | ||||||
|   notify: setup nginx |  | ||||||
|  |  | ||||||
| - name: Install nginx config for git.{{ domain }} |  | ||||||
|   template: |  | ||||||
|     src: templates/gitea.conf |  | ||||||
|     dest: /etc/nginx/conf.d/git.{{ domain }}.conf |  | ||||||
|     force: no |  | ||||||
|   notify: setup nginx |  | ||||||
|  |  | ||||||
| - name: Install nginx config for our Hidden Service |  | ||||||
|   template: |  | ||||||
|     src: templates/tor.conf |  | ||||||
|     dest: /etc/nginx/conf.d/tor-{{ domain }}.conf |  | ||||||
|  |  | ||||||
| - name: Enable Nginx |  | ||||||
|   systemd: |   systemd: | ||||||
|     name: nginx |     name: nginx | ||||||
|     enabled: yes |     state: stopped | ||||||
|     state: started |  | ||||||
|  | - name: "Setup Certbot" | ||||||
|  |   include_role: | ||||||
|  |     name: geerlingguy.certbot | ||||||
|  |   vars: | ||||||
|  |     certbot_admin_email: "{{ contact_email }}" | ||||||
|  |     certbot_create_if_missing: true | ||||||
|  |     certbot_create_standalone_stop_services: [] | ||||||
|  |     certbot_certs: | ||||||
|  |       - domains: | ||||||
|  |           - "{{ domain }}" | ||||||
|  |           - "git.{{ domain }}" | ||||||
|  |  | ||||||
|  | - name: "Install Nginx" | ||||||
|  |   include_role: | ||||||
|  |     name: geerlingguy.nginx | ||||||
|  |   vars: | ||||||
|  |     nginx_listen_ipv6: false | ||||||
|  |     nginx_vhosts: | ||||||
|  |       - listen: "443 ssl http2" | ||||||
|  |         server_name: "{{ domain }}" | ||||||
|  |         root: "/var/www/{{ domain }}/public" | ||||||
|  |         index: "index.html index.htm" | ||||||
|  |         extra_parameters: | | ||||||
|  |           listen [::]:443 ssl http2; | ||||||
|  |           location / { | ||||||
|  |             add_header Permissions-Policy interest-cohort=(); | ||||||
|  |             try_files $uri $uri/ =404; | ||||||
|  |           } | ||||||
|  |           ssl_certificate     /etc/letsencrypt/live/{{ domain }}/fullchain.pem; | ||||||
|  |           ssl_certificate_key /etc/letsencrypt/live/{{ domain }}/privkey.pem; | ||||||
|  |           ssl_protocols       TLSv1.1 TLSv1.2 TLSv1.3; | ||||||
|  |           ssl_ciphers         HIGH:!aNULL:!MD5; | ||||||
|  |       - listen: "80" # redirect http requests to https | ||||||
|  |         server_name: "{{ domain }}" | ||||||
|  |         return: "301 https://{{ domain }}$request_uri" | ||||||
|  |         filename: "{{ domain }}.80.conf" | ||||||
|  |       - listen: "443 ssl http2" | ||||||
|  |         server_name: "git.{{ domain }}" | ||||||
|  |         client_max_body_size: "512M" | ||||||
|  |         extra_parameters: | | ||||||
|  |           listen [::]:443 ssl http2; | ||||||
|  |           listen 80; | ||||||
|  |           listen [::]:80; | ||||||
|  |           location / { | ||||||
|  |             add_header Permissions-Policy interest-cohort=(); | ||||||
|  |             proxy_pass http://localhost:{{ giteaPort }}; | ||||||
|  |             proxy_set_header Connection $http_connection; | ||||||
|  |             proxy_set_header Upgrade $http_upgrade; | ||||||
|  |             proxy_set_header Host $host; | ||||||
|  |             proxy_set_header X-Real-IP $remote_addr; | ||||||
|  |             proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; | ||||||
|  |             proxy_set_header X-Forwarded-Proto $scheme; | ||||||
|  |           } | ||||||
|  |           ssl_certificate     /etc/letsencrypt/live/{{ domain }}/fullchain.pem; | ||||||
|  |           ssl_certificate_key /etc/letsencrypt/live/{{ domain }}/privkey.pem; | ||||||
|  |           ssl_protocols       TLSv1.1 TLSv1.2 TLSv1.3; | ||||||
|  |           ssl_ciphers         HIGH:!aNULL:!MD5; | ||||||
|  |       - listen: "80" # redirect http requests to https | ||||||
|  |         server_name: "git.{{ domain }}" | ||||||
|  |         return: "301 https://git.{{ domain }}$request_uri" | ||||||
|  |         filename: "git.{{ domain }}.80.conf" | ||||||
|  |       - listen: "127.0.0.1:2171" | ||||||
|  |         server_name: "{{ onionDomain }}" | ||||||
|  |         root: "/var/www/{{ domain }}/tor" | ||||||
|  |         index: "index.html index.htm" | ||||||
|  |         extra_parameters: | | ||||||
|  |           location / { | ||||||
|  |             add_header Permissions-Policy interest-cohort=(); | ||||||
|  |             try_files $uri $uri/ =404; | ||||||
|  |           } | ||||||
|  |  | ||||||
|  | - name: "Start Nginx" | ||||||
|  |   systemd: | ||||||
|  |     name: nginx | ||||||
|  |     state: started | ||||||
|   | |||||||
| @@ -1,9 +0,0 @@ | |||||||
| --- |  | ||||||
| - name: Setup certbot |  | ||||||
|   shell: "certbot --nginx --non-interactive --agree-tos --email {{ contact_email }} -d {{ domain }} -d git.{{ domain }}" |  | ||||||
|  |  | ||||||
| - name: Reload Nginx |  | ||||||
|   systemd: |  | ||||||
|     name: nginx |  | ||||||
|     enabled: yes |  | ||||||
|     state: restarted |  | ||||||
| @@ -1,11 +0,0 @@ | |||||||
| server { |  | ||||||
|     server_name git.{{ domain }}; |  | ||||||
|     listen 80; |  | ||||||
|  |  | ||||||
|     location / { |  | ||||||
|         add_header Permissions-Policy interest-cohort=(); |  | ||||||
|         proxy_pass http://localhost:{{ giteaPort }}; |  | ||||||
|     } |  | ||||||
|  |  | ||||||
|     client_max_body_size 100M; |  | ||||||
| } |  | ||||||
| @@ -1,13 +0,0 @@ | |||||||
| server { |  | ||||||
|     server_name {{ domain }}; |  | ||||||
|     listen 80; |  | ||||||
|  |  | ||||||
|     root /var/www/{{ domain }}/public; |  | ||||||
|     index index.html index.htm; |  | ||||||
|  |  | ||||||
|     location / { |  | ||||||
|         add_header Permissions-Policy interest-cohort=(); |  | ||||||
|         add_header Referrer-Policy: "no-referrer"; |  | ||||||
|         try_files $uri $uri/ =404; |  | ||||||
|     } |  | ||||||
| } |  | ||||||
| @@ -1,12 +0,0 @@ | |||||||
| server { |  | ||||||
|     root /var/www/{{ domain }}/tor; |  | ||||||
|     index index.html index.htm; |  | ||||||
|  |  | ||||||
|     location / { |  | ||||||
|         add_header Permissions-Policy interest-cohort=(); |  | ||||||
|         try_files $uri $uri/ =404; |  | ||||||
|     } |  | ||||||
|  |  | ||||||
|     # our tor hidden service is hosted on this port |  | ||||||
|     listen 2171; |  | ||||||
| } |  | ||||||
		Reference in New Issue
	
	Block a user