-
Notifications
You must be signed in to change notification settings - Fork 4
Installation on an Ubuntu Server
Sebastian Schilling edited this page Aug 30, 2024
·
1 revision
Anything in square brackets needs to be replaced.
- Ubuntu server
- Docker for Linux
- nginx
- certbot
- a mail server
$ cd /var/opt
$ git clone https://github.com/dd-bim/datacat-stack.git
$ mv [oldfoldername] [folder]
$ cd [folder]
$ cp env.example.txt .env
$ nano .env
DATACAT_ADMIN_PASSWORD=password # admin password for datacat
DATACAT_EDITOR_URL=https://example.org # domain where datacat will be hosted
DATACAT_EDITOR_VERSION=0.8.1 # current version of datacat editor (docker image tag)
DATACAT_ISSUER=https://example.org # URL of the issuer of generated authentication tokens (normally the domain)
DATACAT_PORT=3000 # port, where datacat will be hosted
DATACAT_SECRET=mylongrandomlygeneratedsecret # secret used to generate authentication tokens
DATACAT_VERSION=0.8.1 # current version of datacat backend (docker image tag)
MAIL_HOST=smtp.zaft-dresden.de # mail server host (connection configuration in docker-compose.override.yml)
MAIL_PORT=587 # mail server port
NEO4J_PASSWORD=neo4jpassword # neo4j password
$ mv docker-compose.override.example.yml docker-compose.override.yml
$ nano docker-compose.override.yml
# Use to override service configuration for local development or specific production env.
services:
# Exposes the web interface at port 7474
db:
# container_name: [name] # optional database name
# ports:
# - "7474:7474"
## Used to override Spring Boot settings
api:
environment: # configure mail server connection
- datacat.mail.from=[postmaster@example.de]
- spring.mail.username=[postmaster@example.de]
- spring.mail.password=[abcdef]
- spring.mail.properties.mail.smtp.auth=true
- spring.mail.properties.mail.smtp.connectiontimeout=5000
- spring.mail.properties.mail.smtp.timeout=5000
- spring.mail.properties.mail.smtp.writetimeout=5000
- spring.mail.properties.mail.smtp.starttls.enable=true
$ docker compose up -d
$ certbot certonly -d [Domain]
$ cd /etc/nginx/sites-enabled
$ nano [Domain]
server {
server_name [Domain]; # set domain
location / {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Proto https;
proxy_set_header X-Forwarded-Ssl on;
proxy_set_header X-Forwarded-Port 443;
proxy_pass http://localhost:[Port]; # port of datacat (default: 3000)
}
listen 443 ssl; # managed by Certbot
ssl_certificate /etc/letsencrypt/live/[Domain]/fullchain.pem; # managed by Certbot # change certificate
ssl_certificate_key /etc/letsencrypt/live/[Domain]/privkey.pem; # managed by Certbot # change certificate
include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
}
server {
if ($host = [Domain]) { # set domain
return 301 https://$host$request_uri;
} # managed by Certbot
server_name [Domain]; # set domain
listen 80;
return 404; # managed by Certbot
}
$ systemctl restart nginx