Self-hosting un server de calendar și contacte, Baïkal
- 1 minute de citit
- 5 exemple de cod în Shell și YAML
- 2 imagini
Disponibil și în English
Pe această pagină

Salut tuturor! 👋
Bine ați venit la un nou articol despre self-hosting! Luna aceasta găzduim un server CalDAV și CardDAV. Baïkal, serverul CalDAV+CardDAV ușor.
Îl vom găzdui într-un container Podman pe un server Fedora.
De ce Baïkal
https://mastodon.social/@nuculabs/114048999903398979
Baïkal are suport multi-utilizator și permite crearea de utilizatori din interfața de administrare, iar fiecare utilizator are propriile calendare și agende de contacte.
Poate fi configurat cu o bază de date SQLite sau PostgreSQL.
Are, de asemenea, o interfață de administrare plăcută, prin care poți adăuga și șterge utilizatori.

Cum să faci self-hosting
Folosesc Podman și Fedora Server rulat pe vechiul meu PC, ca gazdă. Cel mai simplu mod în care automatizez procesul de self-hosting este să scriu un playbook Ansible.
Trebuie să ai ansible instalat. Pe Fedora:
sudo dnf install ansibleApoi dependențele obișnuite:
ansible-galaxy collection install community.generalansible-galaxy collection install containers.podmanansible-galaxy collection install ansible.posixDacă nu folosești Fedora, poți instala Ansible urmând instrucțiunile.
Odată ce ai instalate toate dependențele, poți clona următorul playbook și edita
variabilele din variables.yaml.
Playbook-ul poate fi descărcat de pe Forge-ul meu.
setup_firewall: true # expune porturile firewall-uluibaikal: container_image: "docker.io/ckulka/baikal:nginx" port: 8069 # Portul serverului base_directory: "/baikal" # directorul de bază /baikal data_directory: "data" # directorul de date /baikal/data config_directory: "config" # directorul de configurare /baikal/config mail: | defaults\n\ auth on\n\ tls on\n\ tls_trust_file /etc/ssl/certs/ca-certificates.crt\n\ account default\n\ host host\n\ port 587\n\ from [email protected]\n\ user user\n\ password pass\n\Odată ce ai descărcat playbook-ul și ai editat variabilele, va trebui să îți configurezi serverul web
editând inventory.ini.
Ansible se va conecta prin SSH la example.com, folosind utilizatorul nuculabs, care are acces sudo.
[nuculabs]example.com ansible_user=nuculabs[local]localhostOdată ce inventarul este configurat, poți rula playbook-ul cu:
ansible-playbook -i inventory.ini playbook.yaml --ask-become-passCând playbook-ul se termină, ar trebui să ai o instanță Baïkal pornită. Poți finaliza instalarea vizitând example.com:8069 (portul configurat).
Personal, nu expun serverul Fedora pe internet. Folosesc un reverse proxy în fața lui pentru serviciile care sunt expuse. Baikal nu este expus în această instanță, fiind accesibil doar prin VPN.
Cam atât!
Mulțumesc pentru lectură!