Skip to content

tgranqvist/soittola

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

96 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Soittola project

Requirements

Architecture

The thing runs as a set of Docker containers. Todo: insert picture

Reverse Proxy

A Traefik container proxies requests to the other components. This to facilitate e.g. automatic certificates from Let's Encrypt.

Frontend

A Svelte app.

Backend

A Node.js app.

Database

A Postgres database. See the db subfolder for a bootstrap SQL file that runs when the container is first created. Note that the script isn't triggered if the container volume already has database files (this is a feature of the Postgres image). To apply schema changes, do as follows:

  1. Backup the database
  2. Stop the database service: docker stop container_name
  3. Remove the volume: docker volume rm volume_name
  4. Rebuild and start the database service: docker-compose -d --build from the source direcory

Admin

The setup contains an admin subdomain with some tools:

  • Database admin: adminer
  • Traefik dashboard*

The admin part is password protected as required.

* still to be published

Security

HTTPS only

Let's Encrypt with SSL Labs target score A+.

Security headers

Basic http security headers according to OWASP recommendations and Security Headers

Secure login

Azure B2C login preferred, local user accounts safely stored with BCrypt and salt.

Client-server comms

Client-server comms uses Branca tokens for authentication. To generate the encryption key, run:

$ openssl rand -hex 32

Development

  1. Clone this repo
  2. Populate the .env-sample files, rename to .env
  3. Hack away
  4. Run instructions to follow...

Deployment

Deployment instructions to follow...

About

An outbound messaging app using Twilio. Supports calls and SMS templates.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors