[add] role:zeitbild_backend

This commit is contained in:
Fenris Wolf 2024-10-12 11:57:04 +02:00
parent 457d5580b8
commit 6f36c11791
5 changed files with 172 additions and 0 deletions

View file

@ -0,0 +1,15 @@
{
"var_zeitbild_backend_directory": "/opt/zeitbild",
"var_zeitbild_backend_user": "zeitbild",
"var_zeitbild_backend_git_reference": "master",
"var_zeitbild_backend_verbosity": "notice",
"var_zeitbild_backend_address": "::",
"var_zeitbild_backend_port": 7845,
"var_zeitbild_backend_database_kind": "sqlite",
"var_zeitbild_backend_database_data_sqlite_path": "data.sqlite",
"var_zeitbild_backend_database_data_postgresql_host": "postgresql.example.org",
"var_zeitbild_backend_database_data_postgresql_port": 5432,
"var_zeitbild_backend_database_data_postgresql_username": "zeitbild_user",
"var_zeitbild_backend_database_data_postgresql_password": "REPLACE_ME",
"var_zeitbild_backend_database_data_postgresql_schema": "zeitbild"
}

View file

@ -0,0 +1,78 @@
[
{
"name": "packages",
"become": true,
"ansible.builtin.apt": {
"update_cache": true,
"pkg": [
"git",
"make",
"rsync",
"nodejs"
]
}
},
{
"name": "user and directory",
"become": true,
"ansible.builtin.user": {
"name": "{{var_zeitbild_backend_user}}",
"create_home": true,
"home": "{{var_zeitbild_backend_directory}}"
}
},
{
"name": "program | fetch",
"become": true,
"become_user": "{{var_zeitbild_backend_user}}",
"ansible.builtin.git": {
"repo": "https://forgejo.linke.sx/zeitbild/backend",
"version": "{{var_zeitbild_backend_git_reference}}",
"dest": "/tmp/zeitbild-backend-repo"
}
},
{
"name": "program | build",
"become": true,
"become_user": "{{var_zeitbild_backend_user}}",
"ansible.builtin.command": {
"chdir": "/tmp/zeitbild-backend-repo",
"cmd": "tools/build"
}
},
{
"name": "program | deploy",
"become": true,
"become_user": "{{var_zeitbild_backend_user}}",
"ansible.builtin.command": {
"chdir": "/tmp/zeitbild-backend-repo",
"cmd": "tools/deploy localhost --target-directory={{var_zeitbild_backend_directory}}"
}
},
{
"name": "conf",
"become": true,
"ansible.builtin.template": {
"src": "conf.json.j2",
"dest": "{{var_zeitbild_backend_directory}}/conf.json",
"owner": "{{var_zeitbild_backend_user}}"
}
},
{
"name": "systemd unit",
"become": true,
"ansible.builtin.template": {
"src": "systemd_unit.j2",
"dest": "/etc/systemd/system/zeitbild.service"
}
},
{
"name": "run",
"become": true,
"ansible.builtin.systemd_service": {
"name": "zeitbild",
"enabled": true,
"state": "restarted"
}
}
]

View file

@ -0,0 +1 @@
{}

View file

@ -0,0 +1,14 @@
[Unit]
Description=Zeitbild
After=network.target
[Service]
WorkingDirectory={{var_zeitbild_backend_directory}}
ExecStart={{var_zeitbild_backend_directory}}/zeitbild serve
Type=simple
Restart=always
User={{var_zeitbild_backend_user}}
[Install]
WantedBy=default.target
RequiredBy=network.target

View file

@ -0,0 +1,64 @@
{
"directory": {
"type": "string",
"mandatory": false
},
"user": {
"type": "string",
"mandatory": false
},
"git_reference": {
"type": "string",
"mandatory": false
},
"verbosity": {
"type": "string",
"options": [
"debug",
"info",
"notice",
"warning",
"error"
],
"mandatory": false
},
"address": {
"type": "string",
"mandatory": false
},
"port": {
"type": "integer",
"mandatory": false
},
"database_kind": {
"type": "string",
"options": [
"sqlite"
],
"mandatory": false
},
"database_data_sqlite_path": {
"type": "string",
"mandatory": false
},
"database_data_postgresql_host": {
"type": "string",
"mandatory": false
},
"database_data_postgresql_port": {
"type": "integer",
"mandatory": false
},
"database_data_postgresql_username": {
"type": "string",
"mandatory": false
},
"database_data_postgresql_password": {
"type": "string",
"mandatory": false
},
"database_data_postgresql_schema": {
"type": "string",
"mandatory": false
}
}