Installation
idaas.nl is an identity as a service solution. You do not need to install it yourself. But it is possible to run idaas.nl on premise. This section describes how.
Demo Environment
A prerequisite to start the demo environment is a system with docker and bash.
Download the source code from github.com/idaas-nl/idaas.nl.
Run the commands listed below and access your tenant via http://login.notidaas.nl
Note: notidaas.nl is a special domain. This domain and all subdomains point to localhost.
source .env.demo
docker run --rm \
-u "$(id -u):$(id -g)" \
-v $(pwd):/var/www/html \
-w /var/www/html \
laravelsail/php81-composer:latest \
composer install --ignore-platform-reqs
./vendor/bin/sail up -d
./vendor/bin/sail artisan migrate
./vendor/bin/sail artisan tenant:master login youremail@example.com
The following commands are available. Prefix these commands with ./vendor/bin/sail artisan
in order to run these.
tenant:delete List all tenants (including the master tenant)
tenant:garbage Remove expired module results and access tokens
tenant:list List all tenants (including the master tenant)
tenant:master Create a new master
tenant:new Create a new tenant
In the demo environment, mails are intercepted by MailHog and are visible via http://localhost:8025
The S3 server is provided by MinIO and accessible via http://localhost:8900
Production Environment
There are many possibilities to set up a production environment. Because idaas.nl
is a Laravel application, you can benefit from the flexibility this framework offers. The config files in the config/
folder show what can be configured.
PHP Application server
To simplify scaling it is possible to run idaas.nl
on a serverless-platform like Laravel Vapor
. But is is also possible to run it on most other serverless platforms, although that may require a little extra effort.
Check Laravel's documentation for other deployment scenarios.
Database server
Use one of the following databases (or compatible).
- MySQL 5.7+
- PostgreSQL 9.6+
- SQLite 3.8.8+
- SQL Server 2017+
To simplify scaling, you may want to consider Amazon Aurora, Google's Cloud SQL or Azure SQL.
S3-Compatible Object Storage
Any S3-Compatible Object Storage can be used. Specifically, idaas.nl
uses a functionality referred to as uploading objects using presigned URLs.
Use for example MinIO, DigitalOcean Spaces, or Amazon S3.
Mail provider
Either use SMTP, Mailgun, Postmark, or Amazon SES.
Idaas on Kubernetes
An example Kubernetes configuration can be found in ./kubernetes/
.
This example can serve as inspiration to create a production grade Kubernetes cluster.
In order to start the Kubernetes cluster in minikube, run the following.
# Start minikube and
minikube start --mount-string="$(pwd):/var/www/html" --mount --extra-config=apiserver.service-node-port-range=80-30000
# Build the docker images
env $(cat .env.demo | xargs) docker-compose build laravel.test node.test
# Apply the configuration
minikube kubectl apply -- -f ./kubernetes/
# Expose all services
minikube service --all
# Open a Socks5 proxy
ssh -i ~/.minikube/machines/minikube/id_rsa -D 8080 docker@$(minikube ip)
Use whatever method to open a shell in a pod of the idaas
service and run the following.
php artisan migrate
php artisan tenant:master login youremail@example.com
Now configure your browser to use localhost:8080
as a SOCKS5 proxy and browse to login.notidaas.nl
.