2025-05-30 12:43:55 -06:00

101 lines
2.6 KiB
Markdown

# Static Site Server
Nginx-powered static site server for hosting built documentation and websites.
## Overview
The Static Site Server uses Nginx to serve your built documentation and static websites. It's configured to serve the built MkDocs site and other static content with high performance and reliability.
## Features
- High-performance static file serving
- Automatic index file handling
- Gzip compression
- Caching headers
- Security headers
- Custom error pages
- URL rewriting support
## Access
- **Default Port**: 4001
- **URL**: `http://localhost:4001`
- **Document Root**: `/config/www` (mounted from `./mkdocs/site`)
## Configuration
### Environment Variables
- `PUID`: User ID for file permissions (default: 1000)
- `PGID`: Group ID for file permissions (default: 1000)
- `TZ`: Timezone setting (default: Etc/UTC)
### Volumes
- `./mkdocs/site:/config/www`: Static site files
- Built MkDocs site is automatically served
## Usage
1. Build your MkDocs site: `docker exec mkdocs-changemaker mkdocs build`
2. The built site is automatically available at `http://localhost:4001`
3. Any files in `./mkdocs/site/` will be served statically
## File Structure
```
mkdocs/site/ # Served at /
├── index.html # Homepage
├── assets/ # CSS, JS, images
├── services/ # Service documentation
└── search/ # Search functionality
```
## Performance Features
- **Gzip Compression**: Automatic compression for text files
- **Browser Caching**: Optimized cache headers
- **Fast Static Serving**: Nginx optimized for static content
- **Security Headers**: Basic security header configuration
## Custom Configuration
For advanced Nginx configuration, you can:
1. Create custom Nginx config files
2. Mount them as volumes
3. Restart the container
## Monitoring
Monitor the static site server through:
- Container logs: `docker logs mkdocs-site-server-changemaker`
- Access logs for traffic analysis
- Performance metrics
## Troubleshooting
### Common Issues
- **404 Errors**: Ensure MkDocs site is built and files exist in `./mkdocs/site/`
- **Permission Issues**: Check `PUID` and `PGID` settings
- **File Not Found**: Verify file paths and case sensitivity
### Debugging
```bash
# Check container logs
docker logs mkdocs-site-server-changemaker
# Verify files are present
docker exec mkdocs-site-server-changemaker ls -la /config/www
# Test file serving
curl -I http://localhost:4001
```
## Official Documentation
For more information about the underlying Nginx server:
- [LinuxServer.io Nginx](https://docs.linuxserver.io/images/docker-nginx)
- [Nginx Documentation](https://nginx.org/en/docs/)