authentikate/docs/guide/quick-start.md
Javier Feliz 9db9b0f6b3
All checks were successful
linter / quality (push) Successful in 3m34s
tests / ci (push) Successful in 7m10s
Got claude started on the docs. Will have to update them heavily
2025-08-03 00:23:06 -04:00

4.2 KiB

Quick Start

This guide will get you up and running with AuthentiKate in under 5 minutes.

Prerequisites

  • Docker installed on your system
  • A domain name (optional, can use localhost for testing)

Step 1: Deploy AuthentiKate

Run the following command to start AuthentiKate:

docker run -d \
  --name authentikate \
  -p 8080:8080 \
  -e APP_URL=http://localhost:8080 \
  -v authentikate_data:/var/www/html/storage \
  authentikate/authentikate:latest

Step 2: Get Your Admin Credentials

AuthentiKate automatically creates an admin user on first run. Get the credentials from the logs:

docker logs authentikate

Look for output like:

✅ Initial admin user created:
   Email: admin@authentikate.local
   Password: Xy9#mK2$vB8nQ4!p

Step 3: Access the Interface

  1. Open your browser and go to http://localhost:8080
  2. Log in with the admin credentials from Step 2
  3. You'll be taken to the AuthentiKate dashboard

Step 4: Create Your First Application

  1. Click "Applications" in the navigation

  2. Click "Create Application"

  3. Fill in the details:

    • Name: Test App
    • Redirect URI: http://localhost:3000/auth/callback
    • Client ID: (auto-generated)
    • Client Secret: (auto-generated)
  4. Click "Save"

Step 5: Test the Integration

Your application is now configured! Here are the OIDC endpoints you'll need:

  • Authorization: http://localhost:8080/oauth/authorize
  • Token: http://localhost:8080/oauth/token
  • User Info: http://localhost:8080/oauth/userinfo
  • JWKS: http://localhost:8080/.well-known/jwks.json
  • Discovery: http://localhost:8080/.well-known/openid_configuration

Common Integration Examples

Test with curl

# Get authorization URL (replace CLIENT_ID with your actual client ID)
CLIENT_ID="your-client-id"
REDIRECT_URI="http://localhost:3000/auth/callback"

echo "Visit this URL to authorize:"
echo "http://localhost:8080/oauth/authorize?client_id=${CLIENT_ID}&redirect_uri=${REDIRECT_URI}&response_type=code&scope=openid profile email"

Simple HTML Test Page

Create a simple test page to try the OAuth flow:

<!DOCTYPE html>
<html>
<head>
    <title>AuthentiKate Test</title>
</head>
<body>
    <h1>AuthentiKate OAuth Test</h1>
    <button onclick="authenticate()">Login with AuthentiKate</button>
    
    <script>
        function authenticate() {
            const clientId = 'your-client-id'; // Replace with your actual client ID
            const redirectUri = 'http://localhost:3000/auth/callback';
            const authUrl = `http://localhost:8080/oauth/authorize?client_id=${clientId}&redirect_uri=${redirectUri}&response_type=code&scope=openid profile email`;
            
            window.location.href = authUrl;
        }
    </script>
</body>
</html>

What's Next?

Now that you have AuthentiKate running:

Configure Your Environment

Add Real Applications

Manage Users

Production Setup

Troubleshooting

Can't access AuthentiKate?

  • Make sure the container is running: docker ps
  • Check the logs: docker logs authentikate
  • Verify the port is accessible: curl http://localhost:8080

Forgot admin password?

Reset it by running:

docker exec -it authentikate php artisan app:create-initial-admin --force

Need to change the URL?

Update the APP_URL environment variable and restart:

docker stop authentikate
docker rm authentikate
# Run again with new APP_URL

Container won't start?

Check for port conflicts:

# See what's using port 8080
sudo netstat -tulpn | grep 8080

# Use a different port
docker run -d --name authentikate -p 8081:8080 ...