There are a lot of widely used open source hosting control panels, however, none of them seems apropiate when you already have an existing service infrastructure or simply you want your services to run on a particular architecture.
The goal of this project is to provide the tools for easily build a fully featured control panel that is not tied to any particular service architecture. Orchestra
* The **admin interface** is based on [Django Admin](https://docs.djangoproject.com/en/dev/ref/contrib/admin/). The resulting interface is very model-centric with a limited workflow pattern: change lists, add and change forms. The advantage is that only little declarative code is required.
* It does **not** provide a **customer-facing interface**, but provides a REST API that allows you to build one.
* Service [orchestration](orchestra/contrib/orchestration), [resource management](orchestra/contrib/resources), [billing](orchestra/contrib/bills), [accountancy](orchestra/contrib/orders) is provided in a decoupled way, meaning:
* You can [develop new services](docs/create-services.md) without worring about those parts
* You can replace any of these parts by your own implementation without carring about others
* You can reuse any of those modules on your Django projects
* Be advised, because its flexibility Orchestra may be more difficult to deploy than traditional web hosting control panels.
3. [Install on current system (production)](INSTALL.md)
1. Copy orchestra SSH key to the servers to be managed, you can use `ssh-copy-id`:
```bash
orchestra@panel:~ ssh-copy-id root@server.address
```
Then add the servers using the web interface `/admin/orchestration/servers`, check that the SSH connection is working and Orchestra can report the uptime of the servers.
2. Now configure service by service (domains, databases, webapps, websites, ...):
1. Add the route via `/admin/orchestration/route/`
2. Configure related settings on `/admin/settings/setting/`
3. If required, configure related resources like Account disc limit, VPS traffic, etc `/resources/resource/`
3. Test that everything works as expected by creating and deleting service instances
4. Do the same for the other services
3. Configure billing by adding services `/admin/services/service/add/` and plans `/admin/plans/plan/`. Once a service is created hit the *Update orders* button to create the orders for the existing service instances.