Documentation
0.9
First Steps
Installing the CLI
Quick Start Guide
Prerequisites
A Simple Example
Congratulations!
Platform Overview
Applications & Services
Naming
General Workflow
In-Depth Example
Dynamic App with Database
Build File with Two Services
Connecting the Database
Push Your Code
Set Up Your Database
Restart Your PHP Frontend
Try Your App
Deleting Services
How it Works
Background
The Code Store
The Builder
The Deployer
The Stack Runtime
Services
Custom Service
Authoring a Simple Custom Service
Build Script Modus Operandi
Put the Build Script in a Separate Directory
Use
approot
Build Parameter
Specify Which Program(s) To Run
Available Resources
Scaling
Profile
Postinstall
Logging
Best Practices Summary
Java
Basic Use
Advanced Configuration
Java and Jetty Versions
Internals
MongoDB
Basics
Configure Your Application
Manage MongoDB Users and Databases
Replica Sets
Advanced Configuration
Troubleshooting
See Also
MySQL
Basics
Configure Your Application
Master/Slave
Additional
Node.js
Basic Use
Node.js Versions
WebSockets
Node.js Workers
NPM Dependencies (with package.json)
Listen on Port 8080
Troubleshooting
Signal Handlers
Opa
Perl
Basic Use
Internals
Dependencies
Perl Versions
Cron Jobs
Custom uWSGI Configuration
Custom Nginx Configuration
Perl Worker
Basic Use
Perl Versions
Cron Jobs
Specify Perl Dependencies
PHP & PHP Worker
Basic Use
The PHP Stack
Layout of a PHP Instance
Running Background Processes and Periodic Tasks
Connect to the Services in your Stack
Installing Additional PHP Packages
Configuring PHP
Configuring Nginx
Configuring FastCGI
Caveats
See Also
PostgreSQL and PostGIS
Suggested alternatives for High Availability
Python
Basic Use
Internals
Adapting your application
Custom Nginx Configuration
Python Versions
Custom uWSGI Configuration
New Relic
Other documentations
Python worker
Basic Use
Specify Python dependencies
Python Versions
Redis
Basics
Configure Your Application
Redis CLI
Ruby
Basic Use
Internals
Adapting Your Application
Unsupported gems and how to exclude them
Using Specific Settings on your dotCloud Deployment
Use a specific version of Ruby
Running cron jobs
Custom Nginx Configuration
Ruby Worker
Basic Use
Dependencies
Unsupported gems and how to exclude them
Running cron jobs
Use a specific version of Ruby
SMTP
Introduction
Deploying
Using Your New SMTP Service
Troubleshooting
Receiving Mails
Solr
Suggested alternatives for High Availability
Static
Basic Use
Maintenance Page
Platform Guides
Migrating to the CLI 0.9
Upgrading the CLI
Key changes from 0.4.x to 0.9.x
Setup
Working with your application
Git and Mercurial
Mode Selection
Pushing Uncomitted Changes
Excluding Files From the Push
Omitting Code Directory
Application Flavors
Flavors
Flavors Features Comparison
Checking the Cost of your Application
Build Hooks
Pre-Build
Post-Build
Post-Install
Consulting Logs
Streaming The Logs
Read The Archives
Configuring Nginx
Rewrite Rules
Restricting Access
Setting Up Error Pages
Maintenance Mode
Authentication
Increase HTTP POST Max Size
Combining Conditions
Caveats
Nginx Reference Documentation
Copy Files To and From Services
Download a Single Text File
Upload a Single Text File
Download Binary or Multiple Files
Upload Binary or Multiple Files
Generic SSH (scp, rsync...)
Connecting From a Service to Another
Build File (dotcloud.yml)
Background
Example dotcloud.yml
servicename
: Naming Your Service
type: Defining Your Service
approot: Specifying the Root Directory of a Service
prebuild, postbuild, postinstall: Build Hooks
systempackages: Install Additional System Packages
config: Service-specific Configuration
ports: Custom Ports
environment: Defining Environment Variable
process(es):
supervisor.conf
Shortcuts
requirements: Listing Code Service Dependencies
Custom Domains
Adding a Custom Domain
Removing a Custom Domain
Naked Domains
SSL
Environment File
What is the Environment File?
Reading the Environment
Adding Environment Variables
Removing Environment Variables
YAML Format
Handling Errors
What Can Possibly Go Wrong?
How Can I Intercept Errors?
Background Processes
Defining Daemons
Configuring The Environment
Exit Cleanly With Signals
Configure Logging
Launching Multiple “Workers”
Troubleshooting
Caveats
Periodic Tasks
Using cron
Write Tasks In A Specific Language
Forward The Tasks Output
Persistent Data
Scaling
Scaling Horizontally
Horizontal Scaling vs HA
Scaling Databases for HA
Scaling Vertically
Important Considerations
When to Scale Up or Down
Scheduling Backups
What Can I Backup?
Login to the Service
Copy the Backup Script
Choose Between FTP, SSH and S3
Do a Manual Test Backup
Schedule the Backup Script with a Crontab
Restoring Backups
Sending E-Mails
SSH Access
How to SSH to a Service
How to Run a Single Command
SSL
Piggyback SSL
Custom Domain SSL
Update or Deactivate Custom Domain SSL
Forcing SSL
Using Multiple dotCloud Accounts
WebSockets
Enable WebSockets Support
WebSocket over SSL
Technical Notes
Tutorials
Java
Play!
PHP
PHP Hello World
CakePHP
Drupal
New Relic
PHP-Resque
Symfony
Python
Django
Django and Celery
Django and MongoDB
GeoDjango
MobWrite
Ruby
Thin
Unicorn
More
Amazon’s RDS
CloudAMQP
New Relic Server Monitoring
nodeSocket Welcome
Server Density
Twilio
phpMyAdmin
Import Existing MySQL Databases
Migrations
Sandbox to Live
Go Live
Download
or Do Nothing
RabbitMQ
Prices
Documentation
Sign up and Setup
Migration Steps
CLI 0.4 (OLD)
Old documents
Forced upgrade
F.A.Q.
Can I build my business on dotCloud?
What is your Support SLA?
Where is dotCloud hosted?
Can I use multiple databases together?
Can I add or remove components later?
You don’t support my favorite database/language!
Do I need to use git to use dotCloud?
Can I “git push” my code to dotCloud?
How can you be experts in all these software components?
Can I run dotCloud on a different cloud than EC2?
How do you handle scaling?
Can you magically scale a component not designed to scale?
How do you handle upgrades?
Can I use my own domain name with dotCloud?
How can I use SSL with dotCloud?
How can I setup a crontab?
We removed our free Sandbox April 25th
.
You can read more on our blog.
PHP
¶
Tutorials:
PHP Hello World
CakePHP
Drupal
New Relic
PHP-Resque
Symfony