@@ -0,0 +1,10 @@ | |||
gitea_http_addr: 127.0.0.1 | |||
gitea_http_port: 3000 | |||
#gitea_download_url: https://dl.gitea.io/gitea/1.4/gitea-1.4-linux-amd64 | |||
gitea_download_url: https://github.com/go-gitea/gitea/releases/download/v1.4.0/gitea-1.4.0-linux-amd64 | |||
gitea_download_checksum: sha256:f4c4c7eecc6dd8cd5401883a33924223177b4fa0a40ecd867ad90dc6387a4080 | |||
gitea_admin_username: testadmin | |||
gitea_admin_password: testadmin | |||
gitea_admin_email: admin@example.com |
@@ -0,0 +1,12 @@ | |||
--- | |||
- name: systemd daemon-reload | |||
systemd: | |||
daemon_reload: yes | |||
- name: restart gitea | |||
systemd: | |||
name: gitea.service | |||
state: restarted | |||
listen: | |||
- restart gitea |
@@ -0,0 +1,19 @@ | |||
--- | |||
# https://github.com/ansible/ansible/issues/30599 | |||
- name: "fill config file with a global variable because of ansible bug #30599" | |||
copy: | |||
content: RUN_MODE = prod | |||
dest: /etc/gitea/app.ini | |||
force: no | |||
- name: gitea config | |||
ini_file: | |||
path: /etc/gitea/app.ini | |||
section: "{{ item.section }}" | |||
option: "{{ item.option }}" | |||
value: "{{ item.value }}" | |||
owner: git | |||
group: git | |||
notify: restart gitea | |||
with_items: "{{ _gitea_config }}" |
@@ -0,0 +1,86 @@ | |||
--- | |||
- name: debian packages | |||
apt: | |||
pkg: "{{item}}" | |||
with_items: | |||
- ca-certificates | |||
- git | |||
- golang | |||
- name: download gitea | |||
get_url: | |||
url: "{{ gitea_download_url }}" | |||
dest: /usr/local/bin/gitea | |||
checksum: "{{ gitea_download_checksum }}" | |||
- name: gitea executable | |||
file: | |||
path: /usr/local/bin/gitea | |||
mode: u=rwx,g=rx,o=rx | |||
# - name: allow gitea executable to bind on privileged port | |||
# capabilities: | |||
# path: /usr/local/bin/gitea | |||
# capability: cap_sys_chroot+eip | |||
# state: present | |||
- name: git user | |||
user: | |||
name: git | |||
system: yes | |||
home: /srv/git | |||
- name: gitea home directory | |||
file: | |||
path: /srv/git | |||
mode: u=rwx,g=rx,o=rx | |||
owner: git | |||
group: git | |||
state: directory | |||
- name: gitea repos directory | |||
file: | |||
path: /srv/git/repos | |||
mode: u=rwx,g=rx,o=rx | |||
owner: git | |||
group: git | |||
state: directory | |||
- name: gitea work directory | |||
file: | |||
path: /var/lib/gitea | |||
mode: u=rwx,g=rx,o=rx | |||
owner: git | |||
group: git | |||
state: directory | |||
- name: gitea config directory | |||
file: | |||
path: /etc/gitea | |||
mode: u=rwx,g=rx,o=rx | |||
owner: git | |||
group: git | |||
state: directory | |||
- name: gitea log directory | |||
file: | |||
path: /var/log/gitea | |||
mode: u=rwx,g=rx,o=rx | |||
owner: git | |||
group: git | |||
state: directory | |||
- import_tasks: config.yml | |||
- name: systemd service unit | |||
template: | |||
src: systemd.service.j2 | |||
dest: /etc/systemd/system/gitea.service | |||
notify: | |||
- systemd daemon-reload | |||
- restart gitea | |||
- name: gitea started | |||
systemd: | |||
name: gitea.service | |||
state: started |
@@ -0,0 +1,16 @@ | |||
--- | |||
- name: wait for gitea http port to be open | |||
wait_for: | |||
port: "{{ gitea_http_port }}" | |||
- name: create gitea admin user | |||
command: "/usr/local/bin/gitea admin create-user --name {{ gitea_admin_username }} --password {{ gitea_admin_password }} --email {{ gitea_admin_email }} --admin --config /etc/gitea/app.ini" | |||
register: _gitea_create_admin_user | |||
failed_when: _gitea_create_admin_user.rc == 1 and 'user already exists' not in _gitea_create_admin_user.stderr | |||
changed_when: _gitea_create_admin_user.rc == 0 | |||
#no_log: true | |||
- debug: | |||
msg: "{{ _gitea_create_admin_user }}" |
@@ -0,0 +1,28 @@ | |||
--- | |||
- import_tasks: deploy.yml | |||
- name: flush handlers | |||
meta: flush_handlers | |||
- include_role: | |||
name: certificate | |||
vars: | |||
certificate_name: gitea | |||
certificate_directory: /etc/ssl | |||
certificate_key_usage: | |||
- digitalSignature | |||
- keyEncipherment | |||
certificate_extended_key_usage: | |||
- serverAuth | |||
certificate_alt_names: | |||
- "{{ gitea_server_name | regex_replace( '(.*)','DNS:\\1' ) }}" | |||
- include_role: | |||
name: nginx | |||
vars: | |||
nginx_vhosts: "{{ _gitea_nginx_vhosts }}" | |||
- name: flush handlers | |||
meta: flush_handlers |
@@ -0,0 +1,27 @@ | |||
[Unit] | |||
Description=Gitea (Git with a cup of tea) | |||
After=syslog.target | |||
After=network.target | |||
#After=mysqld.service | |||
#After=postgresql.service | |||
#After=memcached.service | |||
#After=redis.service | |||
[Service] | |||
# Modify these two values and uncomment them if you have | |||
# repos with lots of files and get an HTTP error 500 because | |||
# of that | |||
### | |||
#LimitMEMLOCK=infinity | |||
#LimitNOFILE=65535 | |||
RestartSec=2s | |||
Type=simple | |||
User=git | |||
Group=git | |||
WorkingDirectory=~ | |||
ExecStart=/usr/local/bin/gitea web --config /etc/gitea/app.ini | |||
Restart=always | |||
Environment=USER=git HOME=/srv/git GITEA_WORK_DIR=/var/lib/gitea | |||
[Install] | |||
WantedBy=multi-user.target |
@@ -0,0 +1,63 @@ | |||
_gitea_nginx_vhosts: | |||
- name: gitea | |||
server_names: | |||
- "{{ gitea_server_name }}" | |||
locations: | |||
- location: / | |||
proxy_pass: http://localhost:3000 | |||
_gitea_config: | |||
- section: null | |||
option: RUN_MODE | |||
value: prod | |||
- section: null | |||
option: APP_NAME | |||
value: "{{ gitea_app_name | default(gitea_server_name) }}" | |||
- section: server | |||
option: HTTP_ADDR | |||
value: "{{ gitea_http_addr }}" | |||
- section: server | |||
option: HTTP_PORT | |||
value: "{{ gitea_http_port }}" | |||
- section: server | |||
option: ROOT_URL | |||
value: "https://{{ gitea_server_name }}/" | |||
- section: server | |||
option: DOMAIN | |||
value: "{{ gitea_server_name }}" | |||
- section: server | |||
option: SSH_DOMAIN | |||
value: "{{ gitea_server_name }}" | |||
- section: repository | |||
option: ROOT | |||
value: /srv/git/repos | |||
- section: database | |||
option: DB_TYPE | |||
value: sqlite3 | |||
- section: database | |||
option: PATH | |||
value: "/var/lib/gitea/data/gitea.db" | |||
- section: log | |||
option: ROOT_PATH | |||
value: /var/log/gitea | |||
# see: Support automatic installation via configuration management (ansible, puppet, chef, etc) #2324 | |||
# https://github.com/go-gitea/gitea/issues/2324 | |||
- section: security | |||
option: INSTALL_LOCK | |||
value: true | |||
- section: security | |||
option: DISABLE_GIT_HOOKS | |||
value: true |