Getting Started
angie.local is your control center. It serves the documentation and health-check dashboard.
If this page isn't loading properly, check the following:
- Docker Desktop is running
- The container named
angieis in status Up - Run
docker compose psin your project folder to verify
Access this help page anytime via /amp/docs/help.html
Quick Start
Requirements
- Download: Clone the repository or download the ZIP and extract it to a folder e.g.
D:\amp\ - Launch Docker: Open Docker Desktop and ensure the engine is running.
- Boot the Stack: Open a terminal in your project folder and run:
docker compose up -d
The AMP-MANAGER Setup
Run AMP-MANAGER.bat as Administrator. This tool allows you to manage your environment.
- Install CA: On the first run, it installs your Certificate Authority.
This allows your browser to trust your local.localsites with green SSL locks. - Add Your First Site: Select [N] New Domain and type
angie - Note: The manager automatically adds
.local, generates your SSL.pemfiles, and creates the server configuration.
Finalize & Browse
- Reload Angie: For the server to see your new site configuration, from AMP-MANAGER, or restart the container:
- Visit the default angie.local: Open your browser and go to
https://angie.local - This is your Control Center for documentation, health checks, and status monitoring.
AMP Stack
Angie is a modern fork of Nginx with enhanced features, better performance tuning options, and active maintenance.
In this AMP stack:
- Angie handles all HTTP/HTTPS traffic
- PHP-FPM processes dynamic content
- All configuration files live on your host:
D:\amp\config\angie-sites\*.conf
More detailed setup information is available on the official websites:
Angie, a free fork of nginx, a powerful and scalable web server ↗
Angie srver external modules ↗
MariaDB Server: the innovative open source database ↗
PHP: the popular general-purpose scripting language ↗
Mkcert: zero-config tool to make locally trusted certificates ↗
SSL & Certificates
We use mkcert to create locally trusted certificates.
If browsers show a red warning or "Not Secure":
- Run Option 9 in amp-manager.bat to re-trust the AMP-Manager Root Authority
- Or manually run
mkcert -installin your command prompt (as Administrator the first time) - After trusting, restart your browser
All certificates are stored in D:\amp\config\certs\
Setup .local Domains
To add a new local site:
- Create your project folder inside
D:\amp\www\project.local\ - Run AMP-MANAGER to generate the server conf. file
D:\amp\config\angie-sites\project.local.conf - And create the required domain entry and
.pemcertificate:- Generate SSL certificate (mkcert)
- Add entry to Windows hosts file (127.0.0.1 yourproject.local)
- Reload Angie
- Ensure your
.conffile has the correctserver_name project.local;androot /www/project.local/public;
If you edit angie.local.conf avoid editing the DASHBOARD & API required for server /status/
Database Settings
Default credentials (change in production or via docker-compose):
- Host:
db(MariaDB container name) - Root user:
root - Root password: set in docker-compose or .env
- Application user:
ampuser - Default database:
ampdb
To create a new database:
- Open phpMyAdmin (via Database Admin link) or any MySQL client
- Login as root
- Create new database → assign privileges to ampuser if needed
Manage databases with root credentials or create dedicated users per project.
Troubleshooting
- Port 80/443 conflict: Close Skype, IIS, Apache, or any other web server using these ports.
- Site not loading: Check Docker logs:
docker logs angie - SSL warning: Re-trust mkcert root CA (see SSL section)
- Domain not resolving: Verify entry in
C:\Windows\System32\drivers\etc\hosts - PHP errors: Check logs in
D:\amp\logs\php\
You can use the built-in PHP server for debugging if you're having trouble with a specific script, e.g., a syntax error that is hard to find in Docker logs, just run this in the project folder:
php -S localhost:8000
- You get instant feedback: Errors are printed directly to the terminal window in real-time.
- Isolation: It removes Docker, Angie, and SSL from the equation.
If it works here but fails in the stack, the problem is in the Server Config, not the PHP Code.
While great for a quick test, php -S has three major limitations:
- The built-in server ignores all your custom location blocks and rewrite rules.
- Single-Threaded: It can only handle one request at a time.
- No HTTPS: It runs on http://, so features requiring a Secure Context (like some modern JS APIs) will fail
Tip
Use php -S only if you need to see raw PHP errors instantly without checking the Docker logs.
Docker
Common daily commands:
- Check status:
docker compose ps - View logs:
docker compose logs -f angieordocker logs angie - Restart stack:
docker compose down && docker compose up -d - Enter container:
docker compose exec angie shordocker compose exec php sh - Reload Angie without restart:
docker compose exec angie angie -s reload
Container crash? Look for syntax errors in config files or missing mounts in docker-compose.yml.