Skip to main content

On-Premises Deployment

AuthNull can run entirely inside your own infrastructure, as a Docker Compose stack on a single Linux server. This guide takes you from an empty server to a working tenant, after which you choose which product to try: Active Directory, Database, RADIUS, or PAM MFA.

Index​

StepGuideWhat you do
1PrerequisitesCheck the server, network access, and accounts you need
2InstallationGet the deployment files, configure .env, install Docker, and start the stack
3Network Access: Domain or IPPublish the stack through Nginx, on a domain with SSL or on the server's IP address
4Organization and Tenant SetupCreate the organization and validate the tenant
5Choose a ProductSign in, choose an MFA provider, and try Active Directory, Database, RADIUS, or PAM MFA
-TroubleshootingKnown installation and sign-in problems

Architecture​

AuthNull's backend is a single consolidated service, authnull-service. Users, tenants, policies, Active Directory, databases, PAM, RADIUS, and MFA all run in this one application, replacing the separate microservices of earlier versions.

All traffic enters through Nginx on the host. Nginx serves the Admin UI and the end-user console, and sends API calls to authnull-service. The containers share a private Docker network (authnull, 10.250.0.0/24). By default every container port is also published on all of the host's interfaces - see Restrict the published ports to keep everything except Nginx off the network.

When a sign-in needs a decision - for example a database login through ProxySQL - it goes to authn-service, which matches it against your policies and, if MFA is required, sends a push through the organization's MFA provider.

Components​

Application​

ContainerPurposeHost port
authnull-serviceThe AuthNull backend - one consolidated application for users, tenants, policies, AD, databases, PAM, RADIUS, and MFA8080
did-reactAdmin UI5173
self-service-consoleEnd-user sign-in and self-service console (/ssc/)3000
authn-serviceAuthentication decisions and push MFA, called by ProxySQL and other gateways2882
authnzSession authorization for API calls6066
secret-management-serviceCredential retrieval9291
log-serviceAudit and access logs9255

Infrastructure​

ContainerPurposeHost port
postgresPostgreSQL 16: the master database, plus one database per organization5432
did-schema-initOne-off job: creates the schema and runs migrations, then exits-
redisCache, sessions, and MFA state (password protected)6379
cassandraData store (with the one-off cassandra-init job)9042

Installed on the Host​

ComponentPurpose
NginxReverse proxy for the UI and API
Product agentsInstalled later, per product - for example the database agent and ProxySQL for Database MFA