Piti pitkästä aikaa asennella Apachen Tikaa Docker-konttiin palvelimelle. Edellisestä kerrasta oli vuosia, joten olin jo ehtinyt unohtaa, miten se tehdään. Siltä varalta, että joudun hommaa taas tekemään, kirjaanpa ohjeet ylös.
Itse Tikan asentaminen on helppoa. Asenna Docker ja ota sillä Tika-kontti haltuun. Jotta kontti käynnistyy aina uudestaan, se ajetaan näin:
docker run -d --restart always -p 9998:9998 apache/tika:<tag>
Tällä saa Tikan toimimaan ja jos ei tarvitse SSL-yhteyksiä, tämä riittää. Jos sen sijaan tarvitsee HTTPS-suojaukset käyttöön, pitää viritellä Nginx ja Certbot.
Asenna Nginx perusasetuksillaan. Certbot asennetaan näin:
apt install certbot python3-certbot-nginx certbot --nginx -d example.com -d www.example.com
Palomuuri kannattaa olla:
ufw allow 'Nginx Full' ufw delete allow 'Nginx HTTP'
Huolehdi myös, että ufw
sallii SSH-yhteydet läpi (ssh
), muuten lukitset itsesi ulos palvelimeltasi.
Sen jälkeen Nginxin asetuksia pitää säätää niin, että Tikalle tehdään reverse proxy ohjaamaan liikennettä.
Nginxin asetustiedoston pitäisi näyttää suunnilleen tältä:
upstream tika { server localhost:9998; } server { # Isojen tiedostojen käsittelyä helpottaa. client_max_body_size 256M; root /var/www/html; # Add index.php to the list if you are using PHP index index.html index.htm index.nginx-debian.html; server_name www.example.com; location / { proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_set_header X-NginX-Proxy true; proxy_pass http://tika/; # On tärkeää, että tätä oletuksena mukana olevaa riviä ei ole: # try_files $uri $uri/ =404; listen [::]:443 ssl ipv6only=on; # managed by Certbot listen 443 ssl; # managed by Certbot ssl_certificate ... # managed by Certbot ssl_certificate_key ... # managed by Certbot include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot } } server { if ($host = www.example.com) { return 301 https://$host$request_uri; } # managed by Certbot listen 80 default_server; listen [::]:80 default_server; server_name www.example.com; return 404; # managed by Certbot }