🗂️ Onderwerp: Ontwikkelen van OpenBrein 🎖️ Licentie: CC BY-NC-SA 4.0
Mijn probleem
Ik wil wel alles synchroniseren met Github, voor mij totaal geen probleem. Maar het gebruiken van foto’s en andere documenten in mijn notities en documentatie is cruciaal. Alhoewel Github dit graag wel allemaal opslaat kan je tot 1 GB per repo vooraleer je waarschuwingen krijgt en 50 MB per bestand .
Wat wil ik
- Van eender welk apparaat mijn notities publiceren
- Op mijn eigen server hosten
- Automatisatie die automatisch synct met quartz
- Synchronisatie tussen iCloud en Google Drive (indien mogelijk)
De oplossingen
Oplossing 1:
GESTOPT: Te ingewikkeld en te veel zwakke linken in de ketting Ik wil mijn eigen server thuis gebruiken om de Quartz docker image te hosten. → Maar mijn iCloud data moet ook gesynchroniseerd worden met die server.
Huidige opstelling
Droom opstelling
Oplossing 2:
MOGELIJK: Maar heb nog altijd PC (Windows of MAC) nodig om te publishen, niet optimaal! Eigen gitlab server met gitlab pages, zelf opstelling als bij Github maar dan op eigen server.
Oplossing 3:
Volgende om te testen
- Quartz op server installeren met nginx (zonder of met docker) en een automatisatie om de minuut een
quartz sync
te doen om html pagina’s te generen.- Moest ik sowieso al doen dus no bigy
- Lokale (LAN) SFTP server op de
content
folder zodat als ik thuiskom mijn notities kan syncen via een upload site- Ofwel: VPN hosten zodat ik vanaf eender welke plek op mijn lokale netwerk kan (apart van dit project gewoon cool om te hebben)
- Ofwel: SFTP server op de WAN zetten
Benodigdheden
- https://hub.docker.com/r/mandarons/icloud-drive
- https://quartz.jzhao.xyz/hosting#self-hosting
- https://hub.docker.com/r/linuxserver/syncthing
- NGINX op docker
Quartz installeren > Quartz installatie
Nodige pakketen installeren
sudo apt install nodejs npm git
Warning
Op moment van schrijven moet ik via een commando van npm een nieuwere versie installeren om te kunnen werken met Quartz op mijn Ubuntu LTS server. https://github.com/nodesource/distributions
Bestandstructuur aanmaken
Nu dat je quartz hebt afgehaald moeten we ons nog in de map begeven, we doen dit met cd
of grafisch door op de map te klikken
Afhalen via Git
Voer het git clone commando uit in jouw doelmap, ze maakt automatisch een mapje ‘quartz’ aan met alles dat in de huidige Quartz 4.0 repository staat.
Initialiseren en aanmaken Quartz
Quartz is gebouwd en afhankelijk van NodeJS en npm, hierdoor moeten we onze omgeving initialiseren en ‘creëren’ zodat ze alle afhankelijkheden afhaalt. Dit doen we a.d.h.v. de volgende commando’s.
En nu maken we onze Quartz installatie aan:
Configureren Quartz
Na het vorige commando te runnen zal hij vragen voor enkele opties te selecteren, kijk wat voor jou toepasselijk is. - Meestal laat je het best gewoon op de default opties. (Je navigeert met pijltjes en selecteert met enter)
HTML pagina’s aanmaken
Voer een eerste conversie uit om je public
map aan te maken. Je zou normaal gezien automatisch een index.html en bijhorende web componenten moeten genereren.
NGINX installeren > NGINX op docker
Aanmaken bestandstructuur
We gaan onze bestandsstructuur aanmaken! Om enkele configuratie door te voeren om de website volledig te kunnen laten werken met Quartz moeten we een nginx.conf
later aanmaken. Hiervoor maken we de map conf
onder de datamap van nginx.
.
└─data
├─ config
│ └─ nginx
│ └─ conf
└─ nginx
Info
In deze installatie hebben we de ‘html map’ niet nodig aangezien we gewoon de public map van Quartz door gaan geven aan nginx.
Aanmaken configuratie nginx
Opbouw nginx.conf - Stack overflow Mime types - Stack overflow Dit is het configuratiebestand voor NGINX om de juiste bestanden op de juiste manieren te gebruiken.
- Je moet enkel de
server_name
nog aanpassen naar de je domeinnaam als je ze op het web gaat zetten.
Aanmaken configuratiebestand
NGINX documentatie
Nu moeten we de docker-compose.yml
aanmaken in de config
folder van onze server. Hier leggen we niet de link met de gewoonlijke HTML folder, maar met de public
folder van onze