Deployment Guide
This guide covers deploying the Poway Auto Jekyll site to GitHub Pages and setting up a local development environment for testing and customization.GitHub Pages Deployment
Poway Auto is configured for automatic deployment to GitHub Pages using GitHub Actions.Current Deployment
The site is already deployed at: https://ahaanv19.github.io/QAV_Frontend/- Repository:
Ahaanv19/QAV_Frontend - Branch:
main - Base URL:
/QAV_Frontend - Theme:
jekyll/minima(dark skin)
GitHub Actions Workflow
Deployment is automated via.github/workflows/jekyll-gh-pages.yml:
Build Process
The workflow:
- Installs Ruby 3.1 and Jekyll dependencies
- Sets up Python virtual environment
- Converts Jupyter notebooks to Markdown
- Builds the Jekyll site
Deployment typically completes within 2-3 minutes after pushing changes.
Manual Deployment Trigger
You can also trigger deployment manually:- Navigate to Actions tab in the GitHub repository
- Select Deploy Jekyll with GitHub Pages
- Click Run workflow
- Choose the
mainbranch and click Run workflow
Local Development Setup
Set up Poway Auto locally for development and testing.Prerequisites
Ruby
Ruby 3.1 or higher
Bundler
Gem package manager
Python
Python 3.8+ with pip
Git
Version control
Installation Steps
Install Ruby Dependencies
The project uses a Gemfile to manage Jekyll dependencies:Install gems:
Gemfile
Install Python Dependencies
For Jupyter notebook conversion and data processing:Install with pip:
requirements.txt
Running the Development Server
The Makefile provides convenient commands for local development.Default Server
Start the Jekyll development server:- Stops any existing server on the port
- Converts Jupyter notebooks to Markdown
- Starts Jekyll server on
http://127.0.0.1:4887/flocker_frontend/ - Watches for file changes and auto-regenerates
The default port is
4887. The server URL will be displayed in the terminal output.Custom Port
Run on a different port:Server Output
You’ll see output like:Makefile Commands
The Makefile includes several useful targets:Makefile Configuration
Key variables in the Makefile:Jekyll Configuration
The_config.yml file controls site settings:
Important Configuration Options
baseurl
baseurl
Set to
/QAV_Frontend for GitHub Pages deployment.For local development, Jekyll automatically handles this. All asset paths use {{site.baseurl}} for portability.remote_theme
remote_theme
Uses
jekyll/minima with dark skin. Alternative themes are commented out:pages-themes/midnightpages-themes/dinkypages-themes/minimalpages-themes/caymanpages-themes/time-machine
future: true
future: true
Allows posts with future dates to be published. Useful during development.
Build Commands
Production Build
Build the site for production:_site/ directory.
Development Build with Watch
-H 127.0.0.1: Bind to localhost-P 4887: Port number- Auto-regenerates on file changes
- Live reload available
Build with Drafts
_drafts/ folder.
Project Structure
Understanding the directory layout:API Configuration
The frontend connects to backend APIs defined inassets/js/api/config.js:
Troubleshooting
Common Issues
Port Already in Use
Port Already in Use
If port 4887 is occupied:
Bundle Install Fails
Bundle Install Fails
Ensure you have the correct Ruby version:On some systems, you may need:
Notebook Conversion Errors
Notebook Conversion Errors
If notebook conversion fails:
CSS/JS Not Loading
CSS/JS Not Loading
Ensure all asset paths use
{{site.baseurl}}:API CORS Errors
API CORS Errors
The backend must have CORS enabled for the frontend domain:
Production Checklist
Before deploying to production:- Test all routes locally with
make server - Verify API endpoints are accessible
- Check that all images and assets load correctly
- Test responsive design on mobile devices
- Ensure geolocation permissions work in target browsers
- Validate all forms submit successfully
- Review and update
_config.ymlsettings - Test GitHub Actions workflow on a feature branch
- Clear browser cache to test fresh deployment
Advanced Configuration
Custom Domain
To use a custom domain with GitHub Pages:-
Add a
CNAMEfile to the repository root: -
Update
_config.yml: - Configure DNS with your domain provider
Environment Variables
For sensitive configuration, use environment variables:Continuous Integration
The GitHub Actions workflow provides:- Automated builds on every push
- Dependency caching for faster builds
- Python notebook conversion before building
- Artifact upload for deployment
- Concurrent deployment prevention to avoid conflicts
Next Steps
After deployment:- Monitor Usage: Check GitHub Pages analytics
- Update Content: Add new features and documentation
- Optimize Performance: Minimize assets, enable caching
- Gather Feedback: Collect user input for improvements
- Iterate: Continuously enhance based on real-world usage