Files
Berufsschule_HAM/docs/Administration.md

3.5 KiB

Administration

Requirements

Hardware

  • Ubuntu Server with
    • 2 CPU cores
    • 2 GB RAM
    • 50 GB SSD
  • Windows Server with
    • 4 CPU cores
    • 4 GB RAM
    • 100 GB SSD

Software

  • DotNet Core 10.0 Hosting Bundle (Windows)
  • DotNet Core 10.0 Runtime (Ubuntu)
  • LDAP server (Active Directory or OpenLDAP)

Hosting setup

  • Windows: Read the Microsoft documentation regarding hosting .NET apps
  • Ubuntu:
    • Install DotNet Core 10.0 runtime via package manager: sudo apt install dotnet10 dotnet-runtime-10.0
    • Set up nginx to point to the application:
      • sudo apt install nginx
      • Configure nginx: example_nginx.conf
      • Restart nginx: sudo systemctl restart nginx
      • If you don't already have an SSL certificate:
        • Install certbot: sudo apt install certbot -y
        • Acquire a certificate: sudo certbot certonly -d mydomain.com -d www.mydomain.com
        • Set up a cronjob for renewal:
          • sudo crontab -e
          • Append the following line: 0 0 * * * /usr/bin/certbot renew --pre-hook "systemctl stop nginx" --post-hook "systemctl start nginx nginx"
          • Save with ctrl + s and exit with ctrl + x
    • Get the application by either:
      • Downloading the release from the releases section of the repository and unpacking it to /var/www/HAM
      • Building the application from source
        • Clone the repository on the target server (e.g. your home directory)
        • Enter the src folder
        • Build the application:
          • dotnet build
          • dotnet publish -c Release
        • Copy the output to the destination: sudo cp bin/Release/net10.0 /var/www/HAM
    • Configure the application as specified in Configuration
    • Set up the Sytemd service
      • Create the service file: sudo nano /etc/systemd/system/HAM.service
      • Set up the contents of the service file. E.g.: example_systemd.service
      • Reload the systemd daemon: sudo systemctl daemon-reload
      • Enable and start the service: sudo systemctl enable HAM.service --now

Configuration

Environments

There are three files named "appsettings" that end in ".json". These are the configuration files.

The appsettings.json file is the generic one, and it specifies information that applies to all environments.

The files named appsettings.*.json contain configuration specific to that environment. Everything that is put there overrides the appsettings.json configuration.

Ldap

This is where you put your LDAP configuration regarding connection and where the individual elements are located.

  • Host: The IP address of the LDAP server
  • Port: The port (usually 389) of the LDAP server
  • UseSsl: Whether to require SSL
  • BindDn: The username to authenticate with
  • BindPassword: The password to use to authenticate
  • BaseDn: The dn where everything is located under
  • AssetsOu: The ou under which the assets reside
  • LocationsOu: The ou under which the locations reside
  • UsersOu: The ou under which the users reside

Other configuration

For other configuration (like setting custom ports) consult the Microsoft documentation