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ă

miniatură blog

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.

miniatură

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 ansible

Apoi dependențele obișnuite:

ansible-galaxy collection install community.generalansible-galaxy collection install containers.podmanansible-galaxy collection install ansible.posix

Dacă 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]localhost

Odată ce inventarul este configurat, poți rula playbook-ul cu:

ansible-playbook -i inventory.ini playbook.yaml --ask-become-pass

Câ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ă!