Binary Deployment

Run MachineAuth as a standalone binary.

Download

Get the latest release from GitHub Releases:

# Linux (x86_64)
wget https://github.com/mandarwagh9/MachineAuth/releases/latest/download/server-linux-amd64
chmod +x server-linux-amd64
mv server-linux-amd64 machineauth

# Linux (ARM64)
wget https://github.com/mandarwagh9/MachineAuth/releases/latest/download/server-linux-arm64
chmod +x server-linux-arm64

# macOS (Intel)
wget https://github.com/mandarwagh9/MachineAuth/releases/latest/download/server-darwin-amd64
chmod +x server-darwin-amd64

# macOS (Apple Silicon)
wget https://github.com/mandarwagh9/MachineAuth/releases/latest/download/server-darwin-arm64
chmod +x server-darwin-arm64

# Windows
# Download server-windows-amd64.exe from releases

Run

./machineauth

Server starts on http://localhost:8080

Configuration

Create a .env file:

PORT=8080
ENV=production
DATABASE_URL=json:machineauth.json
JWT_ACCESS_TOKEN_EXPIRY=3600
ALLOWED_ORIGINS=https://yourdomain.com
ADMIN_EMAIL=admin@example.com
ADMIN_PASSWORD=secure_password_here

Run with env file:

./machineauth
# Or specify env file:
./machineauth --env-file .env

Build from Source

Requirements: Go 1.21+

git clone https://github.com/mandarwagh9/MachineAuth.git
cd MachineAuth
go build -o machineauth ./cmd/server
./machineauth

Systemd Service (Linux)

Create /etc/systemd/system/machineauth.service:

[Unit]
Description=MachineAuth - OAuth for AI Agents
After=network.target

[Service]
Type=simple
User=machineauth
WorkingDirectory=/opt/machineauth
ExecStart=/opt/machineauth/machineauth
EnvironmentFile=/opt/machineauth/.env
Restart=always
RestartSec=5

[Install]
WantedBy=multi-user.target

Install:

sudo systemctl daemon-reload
sudo systemctl enable machineauth
sudo systemctl start machineauth

Docker in Production

For production, we recommend Docker even when running locally. See Docker Deployment.