Split dockerfile into three different dockerfiles such that dependencies
are only downloaded once
This allows the build to be a bit faster, since all deps are downloaded
once at the start.
This also makes it so the frontend container no longer needs to be ran,
as its files are directly embedded into the nginx container
This also remove the extra files, since bind mounts do work
it also remove the entrypoint.sh file, as you should prefer to not use
it
Changed every service to be prefixed by their "group":
- `app` is for the application services
- `mon` is for the monitoring side of things
- `log` is for the logs collection side of things
Renamed the main network to `app`
Moved around some comments in the file to clearly show different groups of services
- added healthcheck for every service
- added nginx second "server" block for monitoring
all monitoring services are now behind this nginx reverse proxy
- fixed logging driver not present for chat service
Changed so that Only non-monitoring services are launched by default
(override by doing `make DOCKER_SERVICE=`)
Fully removed the icons service (not yet in monitoring)
* feat(docker/monitoring): adding the first monitoring tools from the docker file
- The first tools is Grafana basicly the tool to supervise all the data
* feat(monitoring/blackbox): adding initial configuration
* feat(monitoring/grafana): adding the configuration to alerting on the discord channels
* feat(monitoring/grafana): adding the grafana dashboard (docker monitoring)
* feat(monitoring/grafana): adding the grafana dashboard (global monitoring)
* feat(monitoring/grafana): adding the global configuration for dashboards
* feat(monitoring/grafana): adding the prometheus configuration
* feat(monitoring/prometheus): adding the configuration of prometheus as the main grafana sources
* core(docker-compose): adding the monitoring part for the docker files
* feat(monitoring/grafana): removing the monitoring global
* feat(monitoring/prometheus): removing the blackbox
- The self certificate is ruinning everything
* core(docker-compose): removing the blackbox container
* core(env/example): adding a env example
* feat(monitoring/blackbox): adding initial configuration
* test(nginx/location): adding a test to test blackbox
* feat(monitoring/prometheus): adding blackbox to the prometheus configuration
* feat(monitoring/grafana): adding the start of the global dashboard
* feat(monitoring/blackbox): adding tls_configuration skip
- The ssl certificate have to be self-signed
* feat(monitoring/grafana): global is now checked and work w/ others services
* feat(monitoring/prometheus): checking other services run
* feat(nginx/conf): now http port will mirror the https
- Usefull for intern docker communication
* feat(auth/app): adding the /monitoring routes
* feat(icons/app): adding the /monitoring routes
* feat(user/app): adding the /monitoring routes
* refactor(auth/src): linting the app.ts
* refactor(icons/src): linting the app.ts
* refactor(user/src): linting the app.ts
Auth: user can now login with any oauth2 provider the config list
account will be created on demands if not already created.
any oauth2 account is unique (can't link an account to any other
auth method)
Icons: Fixed docker-compose to force JWT_SECRET for now
Auth: Fixed Guest Login to actually work
Auth: Added `Login as Guest` in the login_demo page
Shared: Fixed db/user + uuid modules
- Split userinfo APIs to their own service (`user`)
- Added user service to nginx and docker-compose
- Cleaned up package.json across the project to remove useless
depedencies
- Added word list for Guest username generation (source in file itself)
- Reworked internal of `user` DB to not have a difference between "raw"
id and normal ID (UUID)
- Add fastify to protect routes plugins (requireAuth: true)
- Simple Demo to show regular password auth (no 2FA/OTP nor remote auth)
- Currently supports: login, logout, signin
- OTP workflow should work, not tested
- Fixed convention for docker volumes (now all placed in /volumes/<name>)
- new `EXTRA_FILES` docker build args to specify directory to be copied at
/extra
- run `${SERVICE}/entrypoint.sh` as docker entry point
- added src/empty folder to so if EXTRA_FILES isn't set => use empty
folder (since no conditional COPY)
Using Vite as a bundler to allow easier builds, with shared library
Moved to a single dockerfile that takes an argument to specify which
service to use
moved some file around to faciliate bundling with vite
cried a lot