Skip to content

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. You'll need to create a local (trusted) certificate. Below you'll find how.

docker-compose up
docker-compose up

After a minute or so, visit http://login.notidaas.nl and login with admin@login.notidaas.nl and password changeit.

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)
# 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
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.