Tässä kirjoituksessa on tarkoituksena käydä läpi Baïkal -kalenteripalvelimen asennus Docker-Composelle ja määrittää Caddy-webserverille reverse proxy asetukset siten, että myös kalenteripalvelimella on käytössä sama sertifikaatti kuin Caddy -webserverillä.
Oma kalenteripalvelin on näppärä, jos ei halua käyttää Googlen omaa kalenteria, vaan haluaa kalenterin, jonka tiedot on tallennettu omalle palvelimelle eikä esim. Googlen palvelimelle. Omalle palvelimelle asennettaessa täytyy tietysti muistaa tarvittavat varmuuskopiot, jotta tiedot eivät katoa, jos kone esim. hajoaa. Itselläni on käytössä oma sekä myös perheelle yhteinen kalenteri, johon tallennetaan yhteiset menot yms. jolloin ne ovat kaikkien katseltavissa.
Baïkal -kalenteripalvelin käyttää CalDAV -protokollaa, joka on WebDAV -protokollan laajennus. Myös suosituissa OwnCloud / Nextcloud -pilvipalveluissa, jotka käyttävät WebDAV -protokollaa, on valmiiksi integroituna kalenteripalvelin. Myös nämä kalenteripalvelut toimivat samalla periaatteella kuin Baïkal sillä erotuksella, että Baïkalissa ei ole webbikalenterimahdollisuutta.
Itse hallinnoitavia kalenteri -palvelimia on myös muitakin kuten esim. Radicale, jota olen myös käyttänyt ja asentanut omaan käyttöön, mutta nykyisellään Baïkal on vakiintunut käyttöön.
Baïkalin asennus Link to heading
Baïkalin asennus Docker-Compose ympäristöön alkaa sillä, että luodaan Baïkalille oma hakemisto samaan tapaan kuin Home Assistantin asennuksen kanssa, johon tallennetaan docker-compose.yaml
-tiedosto sekä muut tarvittavat asetustiedostot. Minun tapauksessa tämä tiedosto on nimeltään docker-data
ja sijaitsee kotihakemistossa eli aluksi siirrymme hakemistoon docker-data
ja luomme sinne baikal
-nimisen hakemiston.
cd docker-data
mkdir baikal
Seuraavaksi avataan docker-compose.yaml
editorilla (minulla nano
) ajamalla komento nano docker-compose.yaml
ja tallennetaan sinne alla olevat tiedot.
# Docker Compose file for a Baikal server
version: "2"
services:
baikal:
image: ckulka/baikal:nginx
restart: always
ports:
- "5232:80"
volumes:
- /home/pi/docker-data/baikal/config:/var/www/baikal/config
- /home/pi/docker-data/baikal/data:/var/www/baikal/Specific
volumes:
config:
data:
Kun muutokset on tehty poistutaan editorista ja tallennetaan muutokset. Riviltä “image: chulka/baikal:nginx
” nähdään, että tämä versio Baïkalista on asennettu nginx -webserverin päälle ja valitsin sen sen vuoksi, että se on kooltaan pienempi kuin apache -versio. Mikäli kuitenkin haluaa käyttää apache -versiota, niin myös tämä on valittavissa, tällöin nginx
tilalle muutetaan apache
. Lisää tietoa eri versioista saa github-sivulta https://github.com/ckulka/baikal-docker.
Toinen huomio on, että olen ohjannut portin 5232
dockerin porttiin 80
. Olen tehnyt tämän sen vuoksi, että minulla tämä portti 80
on jo varattuna muuhun käyttöön. Tällöin täytyy vain muistaa ohjata myös modeemista käsin portti 5232
tälle koneelle, johon Caddy -webserveri on asennettu. Mutta portti voisi olla myös esim. tämä portti 80
.
Olen myös merkinnyt rivin 443:443
pois käytöstä juuri sen vuoksi, että käytämme suojatun yhteyden muodostamiseen Caddy -webserverin reverse proxy -toimintoa, jolla saamme määritettyä suojatun yhteyden kalenteri -palvelimeen.
Asennuksen valmistuttua Baïkal käynnistetään komennolla docker-compose up -d
. Mikäli käynnistyksen yhteydessä tulee alla olevan mukainen virheilmoitus, niin kannatta aluksi käynnistää docker
uudestaan komennolla sudo systemctl restart docker
ja kokeilla sen jälkeen käynnistää Baïkal uudestaan komennolla docker-compose up -d
.
Error while fetching server API version: UnixHTTPConnectionPool(host='localhost', port=None): Read timed out. (read timeout=60)
Tässä vaiheessa voidaan tarkastaa, että käynnistyykö Baïkal, jotta saadaan tehtyä tarvittavat käyttäjäasetukset Baïkaliin. Eli mennään selaimella sivustolle x.x.x.x:5232
ja mikäli sivustolla näkyy alla olevan mukainen virheilmoitus, tarkoittaa se sitä, että näiden hakemistojen käyttöoikeudet eivät ole kunnossa ja ne pitää korjata.
Eli seuraavaksi meidän täytyy mennä Dockeriin “sisälle” antamalla komento
docker exec -it baikal_baikal_1 bash
Komennon jälkeen olemme Dockerissa Baïkalin “kontin” sisällä ja seuraavaksi mennään hakemistoon `/var/www/baikal/`
sekä tarkistetaan hakemistojen käyttöoikeus komennolla ls -l
. Tällä komennolla saamme näkyviin käyttöoikeudet, jotka minulla ovat alla olevan mukaiset eli config
-hakemistossa on root
-käyttöoikeudet, jotka pitää muuttaa
Käyttöoikeudet saadaan muutettua oikeaksi komennolla
chmod -R nginx:nginx config
Nyt meillä pitäisi olla käyttöoikeudet asetettuna oikein kuten alla näkyy
Seuraavaksi poistutaan “kontista” komennolla exit
ja käynnistetään Baïkal uudestaan komennolla docker-compose up -d
.
Baïkalin asetusvelho Link to heading
Tämän jälkeen, kun avaamme uudestaan selaimella sivuston x.x.x.x:5232
, niin meille pitäisi avautua alla olevan mukainen ikkuna
Seuraavaksi asetetaan aikavyöhyke oikeaksi, asetetaan admin
-käyttäjän salasana ja tallennetaan muutokset. Tämän jälkeen avautuu uusi ikkuna
Mikäli näkyviin tulee alla olevan näköinen virheilmoitus, niin Specific
-hakemistosta puuttuu db
-hakemisto, joka meidän tulee vielä luoda
Eli palaamme takaisin “konttiin” komennolla docker exec -it baikal_baikal_1 bash
, jossa luodaan hakemistoon /var/www/baikal/Specific
uusi hakemisto db
sekä annetaan hakemistolle oikeat käyttöoikeudet eli
cd /var/www/baikal/Specific
mkdir db
chown -R nginx:nginx db
Lopuksi poistutaan “kontista” komennolla exit
ja päivitetään selaimen ikkuna. Nyt kaikki pitäisi olla kunnossa ja pääsemme jatkamaan eteenpäin
Eli seuraavaksi painetaan nappia “Start using Baïkal
” ja kirjaudutaan admin
-tunnuksilla sisään
Kirjautumisen jälkeen avautuu näkymä
Kohdassa “Users and resources
” luodaan käyttäjät
Käyttäjän luomisen jälkeen meille on luotuna oletus -kalenteri ja -osoitekirja. Huom! myös sähköpostiosoite tarvitsee antaa käyttäjätietoja luodessa.
Nyt meillä on Baïkal -kalenteripalvelin käytössä ja viimeiseksi tehdään vielä muutokset Caddy -webserverille, jotta saadaan suojattu yhteys kalenteripalvelimeen.
Caddyn reverse proxy asetukset Link to heading
Caddyn asetukset tehdään asetustiedostoon /etc/caddy/Caddyfile
ja lisätään sinne alla olevat rivit, joilla ohjataan liikenne kalenteripalvelimelle. Tämä IP-osoite x.x.x.x
on sen tietokoneen sisäverkon IP-osoite, jolle Baïkal -kalenteripalvelin on asennettu ja esimerkki.fi
on se web-sivuston osoite, joka luotiin Caddyn asennuksen yhteydessä.
#Baikal kalenteri
esimerkki.fi:5232 {
reverse_proxy x.x.x.x:5232
}
Seuraavaksi käynnistetään vielä Caddy uudestaan eli ajetaan komento
sudo systemctl restart caddy
Eli nyt kun avaamme nettiselaimessa osoitteen https://esimerkki.fi:5232
, niin meille avautuu suojattu https -yhteys Baïkal -kalenteripalvelimen kirjautumisikkunaan. Kalenterin ja osoitekirjan osoitteen saan näkymään “info
” -näppäimesta, kun avaa käyttäjän tiedot. Yleensä osoite on muotoa https://esimerkki.fi:5232/dav.php/calendars/<kalenterin nimi>/default
.
Jaa tämä: