176 lines
5.9 KiB
Markdown
176 lines
5.9 KiB
Markdown
# Webflow Website Deployment Guide
|
||
|
||
This repository contains a framework for deploying static websites exported from Webflow. Using Docker and Nginx with optional Cloudflare integration, you can quickly deploy your Webflow site with professional-grade hosting.
|
||
|
||
## Webflow Code Export
|
||
|
||
This deployment method requires exporting your Webflow site as static code. To do this:
|
||
1. In your Webflow project dashboard, go to "Publish"
|
||
2. Click on "Export Code"
|
||
3. Download the ZIP file containing your site's code
|
||
|
||
For detailed instructions, see the [official Webflow Code Export guide](https://help.webflow.com/hc/en-us/articles/33961386739347-Code-export).
|
||
|
||
> **⚠️ Important Limitation Warning ⚠️**
|
||
> The following Webflow features will NOT work in exported code:
|
||
> - CMS and database content
|
||
> - User accounts and authentication
|
||
> - Ecommerce functionality
|
||
> - Logic flows
|
||
> - Localized content
|
||
> - Form submissions (due to GDPR compliance)
|
||
> - Site search functionality
|
||
> - Password protection for pages
|
||
>
|
||
> Collection lists will show empty states, and Collection pages won't display content bound to Collection fields.
|
||
|
||
## Technology Stack
|
||
|
||
### Core Technologies
|
||
- **[Webflow](https://webflow.com/)**: Visual web design platform for the original site creation
|
||
- **[Docker](https://www.docker.com/)**: Containerization for consistent deployment
|
||
- **[Nginx](https://nginx.org/)**: High-performance web server for static content
|
||
- **[Cloudflare](https://www.cloudflare.com/)** (Optional): For secure tunneling, DDoS protection, and CDN
|
||
|
||
### Benefits of This Setup
|
||
- **Portability**: Runs consistently on any system with Docker
|
||
- **Security**: Minimal attack surface with Alpine-based containers
|
||
- **Performance**: Optimized Nginx with gzip compression and proper caching
|
||
- **Scalability**: Easily deployable to any server or cloud environment
|
||
|
||
## Directory Structure
|
||
|
||
- `website/` - Contains all the website files (place your Webflow export here)
|
||
- HTML pages
|
||
- `css/` - Stylesheets
|
||
- `js/` - JavaScript files
|
||
- `images/` - Images and media
|
||
- `fonts/` - Custom fonts
|
||
- `docker-compose.yml` - Docker Compose configuration for standard deployment
|
||
- `docker-compose-with-cloudflare.yml` - Extended configuration with Cloudflare Tunnel
|
||
- `nginx.conf` - Nginx web server configuration with performance optimizations
|
||
- `deploy.sh` - Helper script for deployment
|
||
- `cloudflared-config.yml` - Configuration for Cloudflare Tunnel (optional)
|
||
- `CLOUDFLARE-SETUP.md` - Instructions for Cloudflare integration
|
||
|
||
## Deployment Instructions
|
||
|
||
### Prerequisites
|
||
- Docker and Docker Compose installed on your server
|
||
- [Install Docker Engine](https://docs.docker.com/engine/install/)
|
||
- [Install Docker Compose](https://docs.docker.com/compose/install/)
|
||
- Basic knowledge of terminal commands
|
||
|
||
### Steps to Deploy
|
||
1. Clone this repository to your server:
|
||
```bash
|
||
git clone https://gitea.bnkhome.org/bnkops/webflow.quick.server.git
|
||
```
|
||
|
||
2. Extract your Webflow code export into the `website/` directory
|
||
|
||
3. Navigate to the project directory:
|
||
```bash
|
||
cd path/to/webflow-deployment
|
||
```
|
||
|
||
4. Start the Docker container:
|
||
```bash
|
||
docker-compose up -d
|
||
```
|
||
|
||
5. The website should now be available at `http://localhost` or your server's IP address.
|
||
|
||
6. For public access, you can either:
|
||
- Configure your DNS and firewall to expose port 80/443
|
||
- Deploy using the [Cloudflare Tunnel](./CLOUDFLARE-SETUP.md) for secure access
|
||
|
||
### Management Commands
|
||
|
||
- To stop the server:
|
||
```bash
|
||
docker-compose down
|
||
```
|
||
|
||
- To view logs:
|
||
```bash
|
||
docker-compose logs -f
|
||
```
|
||
|
||
- To restart the server:
|
||
```bash
|
||
docker-compose restart
|
||
```
|
||
|
||
- To deploy using the helper script:
|
||
```bash
|
||
./deploy.sh
|
||
```
|
||
|
||
## Configuration
|
||
|
||
- The Nginx configuration is located in `nginx.conf`
|
||
- The Docker Compose configuration is in `docker-compose.yml`
|
||
- Website files are served from the `website/` directory
|
||
|
||
## Technical Details
|
||
|
||
### Nginx Configuration
|
||
The Nginx web server is configured with several optimizations:
|
||
|
||
- **Gzip Compression**: Reduces the size of transferred files
|
||
- **Asset Caching**: Sets proper cache headers for static assets
|
||
- **Error Handling**: Custom error pages
|
||
- **SPA Support**: Fallback to index.html for client-side routing
|
||
|
||
### Docker Configuration
|
||
The Docker setup uses:
|
||
|
||
- **nginx:alpine**: A lightweight, Alpine Linux-based Nginx image
|
||
- **Volume Mounting**: Maps the local website directory to the container
|
||
- **Port Mapping**: Exposes port 80 for HTTP traffic
|
||
- **Automatic Restart**: Container restarts automatically if it crashes
|
||
|
||
## Alternative: Self-Hosted Website Builders
|
||
|
||
If you need more functionality than a static Webflow export provides, consider these alternatives:
|
||
|
||
### GrapesJS
|
||
Webflow is built on a framework similar to [GrapesJS](https://grapesjs.com/), an open-source web builder framework. GrapesJS can be self-hosted and integrated with your own backend for dynamic content.
|
||
|
||
### Changemaker V5
|
||
[Changemaker V5](https://gitea.bnkhome.org/bnkops/Changemaker) is a battle-tested, lightweight, self-hosted productivity suite developed by The Bunker Operations in Edmonton, Alberta, Canada.
|
||
|
||
It empowers you to deploy secure, locally-built websites, blogs, newsletters, and forms – from personal projects to full-fledged campaigns – giving you complete control, inherent security, and true freedom of speech.
|
||
|
||
Changemaker V5 provides a digital campaign alternative to mainstream American systems and can be paired with your own infrastructure at [changemaker.bnkops.org](https://changemaker.bnkops.org).
|
||
|
||
## Troubleshooting
|
||
|
||
### Common Issues
|
||
|
||
#### Container won't start
|
||
```bash
|
||
# Check for detailed error messages
|
||
docker-compose logs
|
||
```
|
||
|
||
#### Cannot connect to website
|
||
```bash
|
||
# Verify the container is running
|
||
docker ps
|
||
|
||
# Check if port 80 is in use by another service
|
||
sudo lsof -i :80
|
||
```
|
||
|
||
#### Permission issues
|
||
```bash
|
||
# Fix permission issues with Docker socket
|
||
sudo chmod 666 /var/run/docker.sock
|
||
```
|
||
|
||
## License
|
||
|
||
This deployment framework is provided under the MIT License.
|