commit a00a62f9288daf4b24cbdb5258238636b2fbf48a Author: admin Date: Mon May 12 00:40:30 2025 -0600 first commit diff --git a/README.md b/README.md new file mode 100644 index 0000000..6153694 --- /dev/null +++ b/README.md @@ -0,0 +1,173 @@ +# 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 or copy this repository to your server + +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.