Deploy October CMS with DeployHQ Guide
Prerequisites
- An October CMS project ready for deployment
- A Git repository (GitHub, GitLab, or Bitbucket)
- A web hosting service or server with:
- PHP >= 7.4
- MySQL/PostgreSQL database
- Composer installed
- PHP extensions: PDO, cURL, OpenSSL, MBString, ZipArchive
- SSL certificate (recommended)
Initial Setup
1. Create your October CMS project
# Install October CMS via Composer
composer create-project october/october myoctober
# Navigate to project
cd myoctober
# Install dependencies
composer install
# Generate application key
php artisan key:generate
2. Configure environment file
Copy and edit .env
file:
cp .env.example .env
Essential .env
configurations:
APP_DEBUG=false
APP_URL=https://your-domain.com
APP_KEY=your-generated-key
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=october
DB_USERNAME=root
DB_PASSWORD=password
CMS_ROUTES_CACHE=true
CMS_ASSET_CACHE=true
ENABLE_CSRF=true
3. Initialize Git repository
git init
git add .
git commit -m "Initial commit"
git remote add origin <your-repository-url>
git push -u origin main
DeployHQ Configuration
1. Create DeployHQ Account
- Visit DeployHQ
- Sign up for a new account
2. Create New Project
- Click "New Project"
- Choose project name
- Select repository provider
- Grant repository access
3. Configure Server
- Go to "Servers & Groups"
- Add new server
- Configure server details:
- Server type (SFTP/SSH recommended)
- Hostname
- Username
- Authentication method
- Remote path
4. Configure Build Pipeline
- Go to "Build Pipeline"
- Add commands:
# Install Composer dependencies
composer install --no-dev --no-interaction --prefer-dist --optimize-autoloader
# Clear and cache routes
php artisan route:cache
# Clear and cache config
php artisan config:cache
# Clear and cache views
php artisan view:cache
# October CMS specific commands
php artisan october:up
php artisan cache:clear
5. Configure Deployment
- Go to "Deployment Config"
- Set up file rules:
# Include
app/**/*
bootstrap/**/*
config/**/*
modules/**/*
plugins/**/*
themes/**/*
vendor/**/*
.htaccess
index.php
artisan
# Exclude
.env
.git/**/*
.github/**/*
storage/framework/cache/**/*
storage/framework/sessions/**/*
storage/framework/views/**/*
storage/logs/**/*
storage/app/**/*
tests/**/*
6. Environment Configuration
- Add production environment variables
- Configure database credentials
- Set up mail settings
- Configure cache and session settings
First Deployment
1. Database Setup
- Create production database
- Update
.env
with database credentials - Run migrations:
php artisan october:up
You can leave this command as a SSH Command and it will run every time. If there are no migrations, the command will end without errors
2. Storage Setup
# Set proper permissions
chmod -R 775 storage
chmod -R 775 bootstrap/cache
3. Initial Deployment
- Go to "Deployments"
- Click "Deploy Now"
- Select branch
- Review and confirm
Ongoing Usage
1. Regular Updates
# Make changes locally
git add .
git commit -m "Update changes"
git push origin main
2. Post-Deployment Tasks
- Clear cache
- Update database if needed
- Check file permissions
Troubleshooting
- 500 Errors: Check storage permissions
- White Screen: Enable debug mode temporarily
- Database Issues: Verify credentials and migrations
- Asset Problems: Check mix manifest and compilation
- Cache Issues: Clear all cache types
Best Practices
- Use deployment hooks for automation
- Regular database backups
- Implement staging environment
- Monitor error logs
- Keep October CMS updated
- Use SSL/HTTPS
- Configure proper caching
Production Configurations
1. Apache Configuration (.htaccess)
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
# Force HTTPS
RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
# Handle Front Controller
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^ index.php [L]
</IfModule>
2. Nginx Configuration
server {
listen 80;
server_name your-domain.com;
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl;
server_name your-domain.com;
root /path/to/october/install;
index index.php;
ssl_certificate /path/to/cert.pem;
ssl_certificate_key /path/to/key.pem;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
3. Cache Configuration
// config/cache.php
'default' => env('CACHE_DRIVER', 'file'),
'stores' => [
'redis' => [
'driver' => 'redis',
'connection' => 'default',
],
]
Security Considerations
- Enable CSRF protection
- Configure secure headers
- Set up proper file permissions
- Use strong passwords
- Regular security updates
- Enable SSL/HTTPS
- Configure firewall rules
This guide provides a comprehensive approach to deploying October CMS using DeployHQ. Adjust configurations based on your specific needs and hosting environment. Remember to follow security best practices and keep your system updated.
Want to learn more about deployment or Wordpress? Check out our documentation or contact our support team for assistance.