add gitea role
This commit is contained in:
parent
c9bb61dcc0
commit
e29bfd0799
4
TODO.md
4
TODO.md
|
@ -1,2 +1,4 @@
|
|||
- [ ] nameservers for users
|
||||
- [ ] create dmarc.report, postmaster email users, give access to infra users
|
||||
- [ ] read email for service accounts dmarc.report, postmaster email users, give access to infra users
|
||||
- [ ] allow infra users to ssh into any machine in infra, regular users into their tilde account on himmel
|
||||
- [ ] allow ufw and setup wireguard on himmel
|
||||
|
|
|
@ -14,3 +14,6 @@
|
|||
|
||||
- name: Mail
|
||||
ansible.builtin.import_playbook: playbooks/deploy-mail.yml
|
||||
|
||||
- name: Gitea
|
||||
ansible.builtin.import_playbook: playbooks/deploy-gitea.yml
|
||||
|
|
|
@ -13,3 +13,7 @@ kanidm person posix set --name idm_admin <username> --shell /bin/zsh
|
|||
kanidm person update <username> --legalname "<display name>" --mail <username>@hatecomputers.club
|
||||
kanidm group add-members mail <username>
|
||||
```
|
||||
|
||||
groups you'll probably want to add people:
|
||||
+ gitea-access
|
||||
+ mail
|
||||
|
|
|
@ -0,0 +1,5 @@
|
|||
---
|
||||
|
||||
gitea_app_name: HateComputers' Gitea
|
||||
gitea_domain: git.hatecomputers.club
|
||||
gitea_auth_domain: auth.hatecomputers.club
|
|
@ -2,6 +2,9 @@
|
|||
|
||||
host_domains:
|
||||
fern.hatecomputers.club:
|
||||
- fern.hatecomputers.club
|
||||
# - fern.hatecomputers.club
|
||||
- auth.hatecomputers.club
|
||||
- mail.hatecomputers.club
|
||||
himmel.hatecomputers.club:
|
||||
# - himmel.hatecomputers.club
|
||||
- git.hatecomputers.club
|
||||
|
|
|
@ -1,17 +1,24 @@
|
|||
[docker]
|
||||
fern.hatecomputers.club ansible_user=root ansible_connection=ssh
|
||||
himmel.hatecomputers.club ansible_user=root ansible_connection=ssh
|
||||
|
||||
[host_domains]
|
||||
fern.hatecomputers.club ansible_user=root ansible_connection=ssh
|
||||
himmel.hatecomputers.club ansible_user=root ansible_connection=ssh
|
||||
|
||||
[nginx]
|
||||
fern.hatecomputers.club ansible_user=root ansible_connection=ssh
|
||||
himmel.hatecomputers.club ansible_user=root ansible_connection=ssh
|
||||
|
||||
[certbot]
|
||||
fern.hatecomputers.club ansible_user=root ansible_connection=ssh
|
||||
himmel.hatecomputers.club ansible_user=root ansible_connection=ssh
|
||||
|
||||
[kanidm]
|
||||
fern.hatecomputers.club ansible_user=root ansible_connection=ssh
|
||||
|
||||
[mail]
|
||||
fern.hatecomputers.club ansible_user=root ansible_connection=ssh
|
||||
|
||||
[gitea]
|
||||
himmel.hatecomputers.club ansible_user=root ansible_connection=ssh
|
||||
|
|
|
@ -0,0 +1,6 @@
|
|||
---
|
||||
|
||||
- name: Gitea setup
|
||||
hosts: gitea
|
||||
roles:
|
||||
- gitea
|
|
@ -22,11 +22,17 @@
|
|||
- systemd-resolved
|
||||
- vim
|
||||
- git
|
||||
- rsync
|
||||
state: latest
|
||||
update_cache: true
|
||||
notify:
|
||||
- Enable systemd-timesyncd
|
||||
|
||||
## DNS
|
||||
- name: Configure systemd-resolved
|
||||
ansible.builtin.include_tasks:
|
||||
file: "systemd-resolved.yml"
|
||||
|
||||
## SSH
|
||||
- name: Copy sshd_config
|
||||
ansible.builtin.copy:
|
||||
|
@ -61,14 +67,3 @@
|
|||
state: "enabled"
|
||||
notify:
|
||||
- Reload ufw
|
||||
|
||||
## DNS
|
||||
- name: Configure systemd-resolved
|
||||
ansible.builtin.include_tasks:
|
||||
file: "systemd-resolved.yml"
|
||||
|
||||
## RSYNC
|
||||
- name: Install rsync
|
||||
ansible.builtin.apt:
|
||||
name: rsync
|
||||
state: present
|
||||
|
|
Binary file not shown.
After Width: | Height: | Size: 31 KiB |
File diff suppressed because one or more lines are too long
After Width: | Height: | Size: 52 KiB |
Binary file not shown.
After Width: | Height: | Size: 31 KiB |
File diff suppressed because one or more lines are too long
After Width: | Height: | Size: 52 KiB |
|
@ -0,0 +1,47 @@
|
|||
---
|
||||
- name: Ensure gitea docker/compose exist
|
||||
ansible.builtin.file:
|
||||
path: /etc/docker/compose/gitea
|
||||
state: directory
|
||||
owner: root
|
||||
group: root
|
||||
mode: 0700
|
||||
|
||||
- name: Ensure gitea docker/compose/data/gitea/conf exist
|
||||
ansible.builtin.file:
|
||||
path: /etc/docker/compose/gitea/data/gitea/conf
|
||||
state: directory
|
||||
owner: 1000
|
||||
group: 1000
|
||||
mode: 0700
|
||||
recurse: true
|
||||
|
||||
- name: Build gitea configuration
|
||||
ansible.builtin.template:
|
||||
src: app.ini.j2
|
||||
dest: /etc/docker/compose/gitea/data/gitea/conf/app.ini
|
||||
owner: 1000
|
||||
group: 1000
|
||||
mode: 0700
|
||||
|
||||
- name: Copy public assets
|
||||
ansible.builtin.copy:
|
||||
src: public/
|
||||
dest: /etc/docker/compose/gitea/data/gitea/public
|
||||
owner: 1000
|
||||
group: 1000
|
||||
mode: 0700
|
||||
|
||||
- name: Build gitea docker-compose.yml.j2
|
||||
ansible.builtin.template:
|
||||
src: docker-compose.yml.j2
|
||||
dest: /etc/docker/compose/gitea/docker-compose.yml
|
||||
owner: root
|
||||
group: root
|
||||
mode: 0700
|
||||
|
||||
- name: Daemon-reload and enable gitea
|
||||
ansible.builtin.systemd_service:
|
||||
state: restarted
|
||||
enabled: true
|
||||
name: docker-compose@gitea
|
|
@ -0,0 +1,105 @@
|
|||
APP_NAME = {{ gitea_app_name }}
|
||||
RUN_MODE = prod
|
||||
RUN_USER = git
|
||||
WORK_PATH = /data/gitea
|
||||
|
||||
[repository]
|
||||
ROOT = /data/git/repositories
|
||||
|
||||
[repository.local]
|
||||
LOCAL_COPY_PATH = /data/gitea/tmp/local-repo
|
||||
|
||||
[repository.upload]
|
||||
TEMP_PATH = /data/gitea/uploads
|
||||
|
||||
[server]
|
||||
APP_DATA_PATH = /data/gitea
|
||||
DOMAIN = {{ gitea_domain }}
|
||||
SSH_DOMAIN = {{ gitea_domain }}
|
||||
HTTP_PORT = 3000
|
||||
ROOT_URL = https://{{ gitea_domain }}/
|
||||
DISABLE_SSH = false
|
||||
SSH_PORT = 22
|
||||
SSH_LISTEN_PORT = 22
|
||||
LFS_START_SERVER = true
|
||||
LFS_JWT_SECRET = {{ gitea_jwt_secret }}
|
||||
OFFLINE_MODE = false
|
||||
LANDING_PAGE = explore
|
||||
|
||||
[database]
|
||||
PATH = /data/gitea/gitea.db
|
||||
DB_TYPE = sqlite3
|
||||
HOST = localhost:3306
|
||||
NAME = gitea
|
||||
USER = root
|
||||
PASSWD =
|
||||
LOG_SQL = false
|
||||
SCHEMA =
|
||||
SSL_MODE = disable
|
||||
|
||||
[indexer]
|
||||
ISSUE_INDEXER_PATH = /data/gitea/indexers/issues.bleve
|
||||
|
||||
[session]
|
||||
PROVIDER_CONFIG = /data/gitea/sessions
|
||||
PROVIDER = file
|
||||
|
||||
[picture]
|
||||
AVATAR_UPLOAD_PATH = /data/gitea/avatars
|
||||
REPOSITORY_AVATAR_UPLOAD_PATH = /data/gitea/repo-avatars
|
||||
|
||||
[attachment]
|
||||
PATH = /data/gitea/attachments
|
||||
|
||||
[log]
|
||||
MODE = console
|
||||
LEVEL = info
|
||||
ROOT_PATH = /data/gitea/log
|
||||
|
||||
[security]
|
||||
INSTALL_LOCK = true
|
||||
SECRET_KEY =
|
||||
REVERSE_PROXY_LIMIT = 1
|
||||
REVERSE_PROXY_TRUSTED_PROXIES = *
|
||||
INTERNAL_TOKEN = {{ gitea_internal_token }}
|
||||
PASSWORD_HASH_ALGO = pbkdf2
|
||||
|
||||
[service]
|
||||
DISABLE_REGISTRATION = false
|
||||
REQUIRE_SIGNIN_VIEW = false
|
||||
REGISTER_EMAIL_CONFIRM = false
|
||||
ENABLE_NOTIFY_MAIL = false
|
||||
ALLOW_ONLY_EXTERNAL_REGISTRATION = true
|
||||
SHOW_REGISTRATION_BUTTON = false
|
||||
ENABLE_CAPTCHA = false
|
||||
DEFAULT_KEEP_EMAIL_PRIVATE = false
|
||||
DEFAULT_ALLOW_CREATE_ORGANIZATION = true
|
||||
DEFAULT_ENABLE_TIMETRACKING = true
|
||||
NO_REPLY_ADDRESS = noreply.localhost
|
||||
|
||||
[lfs]
|
||||
PATH = /data/git/lfs
|
||||
|
||||
[mailer]
|
||||
ENABLED = false
|
||||
|
||||
[openid]
|
||||
ENABLE_OPENID_SIGNIN = false
|
||||
ENABLE_OPENID_SIGNUP = true
|
||||
WHITELISTED_URIS = {{ gitea_auth_domain }}
|
||||
|
||||
[cron.update_checker]
|
||||
ENABLED = false
|
||||
|
||||
[repository.pull-request]
|
||||
DEFAULT_MERGE_STYLE = merge
|
||||
|
||||
[repository.signing]
|
||||
DEFAULT_TRUST_MODEL = committer
|
||||
|
||||
[oauth2]
|
||||
JWT_SECRET = {{ gitea_oauth2_jwt_secret }}
|
||||
|
||||
[webhook]
|
||||
; Allow insecure certification
|
||||
SKIP_TLS_VERIFY = true
|
|
@ -0,0 +1,19 @@
|
|||
version: "3"
|
||||
|
||||
networks:
|
||||
gitea:
|
||||
external: false
|
||||
|
||||
services:
|
||||
server:
|
||||
image: gitea/gitea:latest
|
||||
restart: always
|
||||
networks:
|
||||
- gitea
|
||||
volumes:
|
||||
- ./data:/data
|
||||
- /etc/timezone:/etc/timezone:ro
|
||||
- /etc/localtime:/etc/localtime:ro
|
||||
ports:
|
||||
- "127.0.0.1:9966:3000"
|
||||
- "0.0.0.0:222:22"
|
|
@ -0,0 +1,8 @@
|
|||
server {
|
||||
listen 80;
|
||||
server_name git.hatecomputers.club;
|
||||
|
||||
location / {
|
||||
rewrite ^ https://git.hatecomputers.club$request_uri? permanent;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,21 @@
|
|||
server {
|
||||
server_name git.hatecomputers.club;
|
||||
listen 443 ssl;
|
||||
|
||||
ssl_dhparam /etc/nginx/dhparams.pem;
|
||||
|
||||
ssl_session_timeout 1d;
|
||||
ssl_session_tickets off;
|
||||
ssl_protocols TLSv1.2 TLSv1.3;
|
||||
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-CHACHA20-POLY1305;
|
||||
ssl_prefer_server_ciphers off;
|
||||
|
||||
ssl_certificate /etc/letsencrypt/live/git.hatecomputers.club/fullchain.pem;
|
||||
ssl_certificate_key /etc/letsencrypt/live/git.hatecomputers.club/privkey.pem;
|
||||
|
||||
location / {
|
||||
proxy_pass http://127.0.0.1:9966;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_set_header Host $host;
|
||||
}
|
||||
}
|
|
@ -3,3 +3,6 @@ certbot_email
|
|||
email_ldap_api_token
|
||||
roundcube_oauth2_client_id
|
||||
roundcube_oauth2_client_basic_secret
|
||||
gitea_jwt_secret
|
||||
gitea_oauth2_jwt_secret
|
||||
gitea_internal_token
|
||||
|
|
Loading…
Reference in New Issue