This repository contains the configuration and scripts I use to control my servers.
## Introduction
### Tests
A PaaS that is aimed at hosting free software \o/
There is a script that provision 2 VMs on Vutlr for tests purpose.
To install it, follow instructions in `INSTALL.nd`.
#### Prerequisites
## Modular
- have a [vultr account](http://www.vultr.com/?ref=6810586)
- have a [VULTR API KEY](https://my.vultr.com/settings/)
- have the [port 25 open](https://www.vultr.com/docs/what-ports-are-blocked)(if you want to test emails)
- have an [ssh key registered](https://my.vultr.com/sshkeys/)
The PaaS is really modular, that's why it contains the strict necessary, then you'll probably want to add `system` modules or `applications`.
#### Start tests
## System modules
/!\ This is still in dev, use it at your own risk /!\
Here is a list of modules supported:
- haproxy
- git-puller
- backups
Go to their respective page for more details.
To install and start a module:
```
git clone module /system/
systemctl enable s@module
systemctl start s@module
```
## Application modules
To install application `wordpress` on `example.org`, just run:
```
export VULTR_API_KEY=
./scripts/start.sh
ssh root@server.test
cd /data/indiehosters
./tests/start.sh
./tests/email.sh
reboot
ssh root@server.test
./tests/stop.sh
# find out WordPress password:
journalctl -u web@*.test | grep to\ connect\ test
# find out piwik and owncloud password:
journalctl -u web@*.test | grep \'\>\>\ generated
exit
./scripts/stop.sh
provision -a github.com/indiehosters/wordpress -u example.org -s
```
Most of the tests are "visual", but by reading them, it gives you an idea on how to start and stop services.
Run `provision` for more details on the capabilities of the script.
Before running `./scripts/stop.sh`, you can use your browser to see the applications:
## Contributing
* https://wordpress.test/ user: test@test.org pass: as found with journalctl before
* https://owncloud.test/ user: test@test.org pass: as found with journalctl before
* https://piwik.test/ user: test@test.org pass: as found with journalctl before
* https://static.test/ (you will simply see the contents of server.test:/data/domains/static.test/static/www-content/index.html)
* https://known.test/ (you will be able to create a user there)
If you have any issue (something not working, mail marked as spam, missing doc), please do report an issue here! Thanks
This is still work in progress, please feel free to contribute to it!
This system is used in production at [IndieHosters](https://indiehosters.net/) so it is maintained. If you use it, please tell us, and we'll be really happy to update this README!
You can help us by:
- starring this project
- sending us a thanks email
- reporting bugs
- writing documentation/blog on how you got up and running in 5mins