System Requirements
Hardware Requirements
- CPU: Minimum 1 core, recommended 2+ cores for production
- Memory: Minimum 256MB RAM, recommended 512MB+ for production
- Disk Space: 100MB for the application, additional space for database storage
Software Requirements
- Java Runtime: OpenJDK 21 (JDK 21.0.7+) - bundled with official distributions
- Operating Systems:
- Linux (Ubuntu, Debian, CentOS, RHEL)
- macOS
- Windows
- Database: One of the following:
- PostgreSQL 11+
- MySQL 5.7+
- MongoDB (via plugin)
- SQLite (for development/testing only)
Installation Methods
Docker (Recommended)
The easiest way to run SuperTokens Core is using Docker:Binary Installation
Linux/macOS
- Download the latest release:
-
Configure your database connection in
config.yaml - Start the service:
Windows
- Download the Windows installer from supertokens.io
- Run the installer
- Configure
config.yaml - Run
supertokens.bat start
From Source
For advanced users who want to build from source:Configuration
Basic Configuration
The main configuration file isconfig.yaml. Key settings include:
Security Settings
Token Configuration
Password Hashing
Supported algorithms:Running as a Service
Systemd (Linux)
Create/etc/systemd/system/supertokens.service:
Docker Compose
For production deployments with Docker, use Docker Compose:Environment Variables
All config.yaml parameters can be overridden with environment variables:Base Path Configuration
To run SuperTokens behind a reverse proxy with a base path:/auth.
Telemetry
SuperTokens collects anonymous usage statistics by default:Scaling Considerations
Horizontal Scaling
- SuperTokens Core is stateless and can be horizontally scaled
- Run multiple instances behind a load balancer
- All instances must connect to the same database
- Session verification happens in the backend SDK (no core contact needed)
Performance Tuning
Health Checks
Verify SuperTokens is running:Hello
See Monitoring for comprehensive health check strategies.
Upgrading
Docker
Binary
- Stop the service
- Backup your database
- Download the new version
- Replace the binaries
- Start the service
Always backup your database before upgrading.
Troubleshooting
Common Issues
Service won’t start- Check Java version:
java -version(requires Java 21) - Verify database connectivity
- Check logs in
error.log
- Verify connection URI format
- Check database credentials
- Ensure database exists and is accessible
- Verify firewall rules
- Change the port in config.yaml
- Check for other services using port 3567
Logs
Log locations:- Docker:
docker logs <container-id> - Binary:
logs/info.logandlogs/error.login installation directory - Systemd:
journalctl -u supertokens