Labilla on FAR ry:n konesalissa virtuaali, tampere.hacklab.fi jossa Ubuntu 18.04.
Lisäksi upcloud tarjoaa virtuaalikoneet mulysalle ja nextcloudille.
Koneella on virallinen dockerin apt-repo käytössä.
Jos säädät dockeria, älä käytä roottia vaan lisää itsesi grouppiin: sudo usermod -aG docker ${USER}
Dockerissa on verkko: tamperehacklab - lisää kaikki kontit siihen niin ne näkevät toisensa.
Dockerin konttien tiedostot löytyvät hakemistosta /docker/<kontti>, johon pitäisi olla kirjoitusoikat docker-ryhmään kuuluvilla käyttäjillä.
Konteissa käytetään docker-composea. Käytä sitä jos teet kontin. Katso esimerkkiä olemassaolevista. Ei salasanoja tai muuta salaista docker-compose.yml:n.
Konttien ympäristömuuttujat ovat joka kontin hakemistoissa .env-tiedostossa. Ne sisältävät salasanoja joten niitä ei voi laittaa gittiin. Älä laita niitä gittiin.
Löytyvät /docker:sta.
Lue skriptit ennen ajoa, niissä on kommenteissa lisätietoja.
Käyttäjätietokanta, jota kaikki palvelut käyttävät.
Käytetään tätä imagea: https://github.com/osixia/docker-openldap
Kontin nimi: ldap
Adminkäyttäjä on: “cn=admin,dc=tampere,dc=hacklab,dc=fi” LDAP-tunnukset ovat tyyliin: “cn=<kayttaja>,ou=users,dc=tampere,dc=hacklab,dc=fi”
(Jos joskus tarvii siirtää dataa koneelta toiselle) Avaa lähde-phpldapadmin, valkkaa export.
Save as file ja LDIF
Avaa export.ldif, poista alusta 2 kohtaa eli base dn ja admin-käyttäjätunnus.
Avaa kohde-phpldapadmin (jossa vain admin-tunnus ja muuten tyhjää). Importtaa export.ldif. Maailma ehkä räjähtää, ehkä ei.
LDAP:n ylläpitotyökalu.
Kontin nimi: phpldapadmin
Web ui urlissa /phpldapadmin/
Labin CMS eli webbisivut/blogialusta.
Sisältää mezzanine-hakemiston joka on gitistä: https://github.com/TampereHacklab/mezzanine
Päivittäminen:
cd /docker/mezzanine/mezzanine git pull cd /docker/mezzanine docker-compose build --no-cache docker-compose up -d
Jos päivität local_settings.py:tä niin docker-compose restart
riittää
Cos:n koodaama LDAP:n rekisteröitymiskikkare. Gitistä: https://github.com/hacklab-fi/dlreg
Kontitettu ja kukkuu. Ei erikoisempaa konffia kuin local_settings.py.
URL: /dlreg/
Reverse proxy jonka läpi muut (webbi)palvelut näkyy http/https- portin kautta.
Huom! Jos muutat konffista, käynnistä kontti uudestaan. Se ei lataa sitä lennosta.
Pohjana tämä kontti, kts dokkarit https://github.com/DiouxX/docker-apache-proxy
Käytettävät certit on data/ssl/ -hakemistossa. Varmenteet myöntää Letsencrypt ja ne ovat voimassa 3kk kerrallaan. Luonti hoidetaan ACME protokollalla. Proxyn hakemistossa /docker/apache-proxy on vanhalta serveriltä kopsittu skripti renewcerts.sh. Se on cronissa ja päivittäin tarkistaa tilanteen.
Jos tehdään uusia varmenteita, niin silloin voidaan käyttää
/docker/apache-proxy/acmetiny/rikucron_renewal.sh
Jotta tämä ACME menetelmä toimisi, niin
ProxyPass /.well-known/acme-challenge/ !
Huom: rivi sisälsi huutomerkin. (!)
* Jos sivustolle on vain TLS (portti 443) yhteys, niin yo. rivi kuuluu sinne. * Jos sivustolla on redirect 80->443, niin ACME protokolla yrittää ensin 80 porttiin ja sitten vasta 443, mikä hidastaa n. 5 sekuntia renewal skriptin ajoa, joten oikea paikka olisi :80 määrityksessä.
HUOM: Jos ylläolevat ehdot eivät täyty, bugaa skriptikin eikä pääse loppuun asti uusimaan varmenteita. Onneksi LetsEncrypt kuitenkin lähettää hallitukselle varoitusmailin 19 päivää ennen vanhenemisia, kuten kävi tänään 15.3.2019 -RI
Wiki, joka on vähän järkevämpi ylläpitää kuin MediaWiki. Käyttää imagea bitnami/dokuwiki
Ennenkuin päivität, ota varmuuskopio minkä voi restoroida. Katso ohjeet bitnamin sivulta https://github.com/bitnami/bitnami-docker-dokuwiki#maintenance
dokuwiki/yamdwe :sta löytyy importtaustyökalu. Käyttää virtualenviä.
env/bin/activate ./yamdwe.py https://tampere.hacklab.fi/viswiki/api.php ../data/dokuwiki/
(säädä data:n tiedosto-oikkia tarvittaessa)
cos:n koodaama tapahtumiin ilmottatumisjärjestelmä.
Piwigo- kuvagalleriasofta. Valitettavasti LDAP-plugin ei tue halutusti LDAP-grouppeja joten sitä ei käytetä. Yleistunnukset käy.
cos:n koodaama geneerinen matrix-botti.
Git: https://github.com/vranki/hemppa
Muutokset gitistä:
my.tampere.hacklab.fi
Mulysa pyörii upcloudin tarjoamalla koneella helsingissä (jossain pilvessä) /docker/mulysa kansiossa
dockerissa pyörii myös mariadb ja traefik ohjaamassa liikennettä (ja hoitamassa lets encrypt certit)
access ainakin tsw ja cos
Mulysa toimii SSO backendinä hacklabin SSO palvelimelle tampereen palveluille.
nc.tampere.hacklab.fi
Pyörii upcloudissa
Pilvi tiedostojen ja muistiinpanojen hallintaan. Käyttää imagea https://hub.docker.com/_/nextcloud/ ja sisältää lisäksi mariadb-tietokannan https://hub.docker.com/_/mariadb Kirjautuminen hacklab.fi SSO:lla.
Lisätietoja antaa tsw ja eimink
Ja tarkempi kuvaus tuosta sasl:sta:
sudo apt-get install sasl2-bin
in file: /etc/default/saslauthd change
START=yes
MECHANISMS=“sasldb”
OPTIONS=“-c -m /var/spool/postfix/var/run/saslauthd”
add user:
sudo saslpasswd2 -c -u tampere.hacklab.fi noreply
with a good password, remember to configure the same password into services that use this (as of writing this mulysa is the only one)
sudo service saslauthd start
add smtpd config file
# cat /etc/postfix/sasl/smtpd.conf
pwcheck_method: saslauthd
mech_list: plain login
saslauthd_path: /var/run/saslauthd/mux
in main.cf use the existing www certs
# using same certs as httpd
smtpd_tls_cert_file=/docker/apache-proxy/data/ssl/tampere.hacklab.fi.signed.crt
smtpd_tls_key_file=/docker/apache-proxy/data/ssl/tampere.hacklab.fi.domain.key
smtpd_use_tls=yes
smtp_use_tls=yes
in master.cf enable submission
submission inet n - y - - smtpd
-o syslog_name=postfix/submission
-o smtpd_tls_security_level=encrypt
-o smtpd_sasl_auth_enable=yes
-o smtpd_tls_auth_only=yes
# -o smtpd_reject_unlisted_recipient=no
# -o smtpd_client_restrictions=$mua_client_restrictions
# -o smtpd_helo_restrictions=$mua_helo_restrictions
# -o smtpd_sender_restrictions=$mua_sender_restrictions
# -o smtpd_recipient_restrictions=
-o smtpd_relay_restrictions=permit_sasl_authenticated,reject
# -o milter_macro_daemon_name=ORIGINATING
give postfix saslgroup
adduser postfix sasl
and restart postfix
service postfix restart
and test