README.md 5.65 KB
Newer Older
Pierre Ozoux's avatar
Pierre Ozoux committed
1
# libre.sh
2 3
[![Backers on Open Collective](https://opencollective.com/libresh/backers/badge.svg)](#backers)
 [![Sponsors on Open Collective](https://opencollective.com/libresh/sponsors/badge.svg)](#sponsors) 
4

Pierre Ozoux's avatar
Pierre Ozoux committed
5
## Introduction
6

Pierre Ozoux's avatar
Pierre Ozoux committed
7
A PaaS that is aimed at hosting free software \o/
Pierre Ozoux's avatar
Pierre Ozoux committed
8

Pierre Ozoux's avatar
Pierre Ozoux committed
9 10 11 12 13
## Installation

[![ScreenShot](https://cloud.pierre-o.fr/index.php/apps/files_sharing/ajax/publicpreview.php?x=1364&y=283&a=true&file=preview.png&t=KlxYYFT59GirMJa&scalingup=0)](https://fosdem.org/2017/schedule/event/libre_sh/)

To install it, follow the video above and instructions in `INSTALL.md`.
Pierre Ozoux's avatar
Pierre Ozoux committed
14

Pierre Ozoux's avatar
Pierre Ozoux committed
15
### What is libre.sh
Pierre Ozoux's avatar
Pierre Ozoux committed
16

Pierre Ozoux's avatar
Pierre Ozoux committed
17
libre.sh is a little framework to host Docker. It is simple and modular and respect the convention over configuration paradigm.
Pierre Ozoux's avatar
Pierre Ozoux committed
18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35

This is aimed at Hosters to manage a huge amount of different web application, and a quantity of domain names related with emails and so on.

It is currently installed at 3 different hosters in production and hosting ~20 different web applications, with ~500 containers.

Once well installed, in one bash command, you'll be able to:
 - buy a domain name
 - configure DNS for it
 - configure email for it
 - configure dkim for that domain
 - configure dmarc for that domain
 - configure autoconfig for that domain
 - install and start a web application on that domain (WordPress, Nextcloud, piwik...)
 - provision a TLS cert on that domain

Amazing, right?

### Modular
Pierre Ozoux's avatar
Pierre Ozoux committed
36

Pierre Ozoux's avatar
Pierre Ozoux committed
37
The PaaS is really modular, that's why it contains the strict necessary, then you'll probably want to add `system` modules or `applications`.
Pierre Ozoux's avatar
Pierre Ozoux committed
38

Pierre Ozoux's avatar
Pierre Ozoux committed
39 40
It contains 2 [unit-files](https://github.com/indiehosters/LibrePaaS/tree/master/unit-files) to manage system modules and applications, start them at boot, and load the appropriate environment.

Pierre Ozoux's avatar
Pierre Ozoux committed
41 42 43 44 45 46
### Support

You can use the following channels to request community support:
 - [mailinglist/forum](https://forum.indie.host/t/about-the-libre-sh-category/71)
 - [chat](https://chat.indie.host/channel/libre.sh)

Pierre Ozoux's avatar
Pierre Ozoux committed
47
For paid support, just send an inquiry to support@libre.sh.
Pierre Ozoux's avatar
Pierre Ozoux committed
48 49 50

All of this is hosted by libre.sh :)

Pierre Ozoux's avatar
Pierre Ozoux committed
51
## System modules
Pierre Ozoux's avatar
Pierre Ozoux committed
52

Pierre Ozoux's avatar
Pierre Ozoux committed
53
Here is a list of modules supported:
Pierre Ozoux's avatar
Pierre Ozoux committed
54 55 56
 - https proxy:
  - [HAProxy](https://github.com/indiehosters/haproxy)
  - [Nginx](https://github.com/indiehosters/nginx)
57 58
 - [logs](https://github.com/indiehosters/logs)
 - [monitoring](https://github.com/indiehosters/monitoring)
Pierre Ozoux's avatar
Pierre Ozoux committed
59 60 61
 - [git-puller](https://github.com/indiehosters/git-puller)
 - [backups](https://github.com/indiehosters/backups)
 - [sshd](https://github.com/indiehosters/sshd)
Pierre Ozoux's avatar
typo  
Pierre Ozoux committed
62

Pierre Ozoux's avatar
Pierre Ozoux committed
63 64
Go to their respective page for more details.

Pierre Ozoux's avatar
Pierre Ozoux committed
65
### To install and start a module:
Pierre Ozoux's avatar
Pierre Ozoux committed
66 67

```
Pierre Ozoux's avatar
Pierre Ozoux committed
68 69
cd /system/
git clone module
Pierre Ozoux's avatar
Pierre Ozoux committed
70
cd module
71 72
libre enable
libre start
Pierre Ozoux's avatar
Pierre Ozoux committed
73 74 75
```

## Applications
Pierre Ozoux's avatar
Pierre Ozoux committed
76

Pierre Ozoux's avatar
Pierre Ozoux committed
77
### Installation
Pierre Ozoux's avatar
Pierre Ozoux committed
78

Pierre Ozoux's avatar
Pierre Ozoux committed
79
To install application `wordpress` on `example.org`, first make point example.org to your server IP, and then, just run:
Pierre Ozoux's avatar
Pierre Ozoux committed
80 81

```
82
libre provision -a github.com/indiehosters/wordpress -u example.org -s
Pierre Ozoux's avatar
Pierre Ozoux committed
83 84
```

85
Run `libre provision` for more details on the capabilities of the script.
Pierre Ozoux's avatar
Pierre Ozoux committed
86

87
## To debug a module or an application:
Pierre Ozoux's avatar
Pierre Ozoux committed
88 89

```
90 91 92 93
libre ps
libre logs -f --tail=100
libre stop
libre restart
Pierre Ozoux's avatar
Pierre Ozoux committed
94 95
```

Pierre Ozoux's avatar
Pierre Ozoux committed
96
## Contributing
97

Pierre Ozoux's avatar
Pierre Ozoux committed
98
If you have any issue (something not working, missing doc), please do report an issue here! Thanks
99

Pierre Ozoux's avatar
Pierre Ozoux committed
100
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!
pierreozoux's avatar
pierreozoux committed
101

Pierre Ozoux's avatar
Pierre Ozoux committed
102 103 104 105 106 107 108
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
 - writing more documentation
 - sending us cake :) We loove cake!
109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138

## Contributors

This project exists thanks to all the people who contribute. [[Contribute](CONTRIBUTING.md)].
<a href="graphs/contributors"><img src="https://opencollective.com/libresh/contributors.svg?width=890&button=false" /></a>


## Backers

Thank you to all our backers! 🙏 [[Become a backer](https://opencollective.com/libresh#backer)]

<a href="https://opencollective.com/libresh#backers" target="_blank"><img src="https://opencollective.com/libresh/backers.svg?width=890"></a>


## Sponsors

Support this project by becoming a sponsor. Your logo will show up here with a link to your website. [[Become a sponsor](https://opencollective.com/libresh#sponsor)]

<a href="https://opencollective.com/libresh/sponsor/0/website" target="_blank"><img src="https://opencollective.com/libresh/sponsor/0/avatar.svg"></a>
<a href="https://opencollective.com/libresh/sponsor/1/website" target="_blank"><img src="https://opencollective.com/libresh/sponsor/1/avatar.svg"></a>
<a href="https://opencollective.com/libresh/sponsor/2/website" target="_blank"><img src="https://opencollective.com/libresh/sponsor/2/avatar.svg"></a>
<a href="https://opencollective.com/libresh/sponsor/3/website" target="_blank"><img src="https://opencollective.com/libresh/sponsor/3/avatar.svg"></a>
<a href="https://opencollective.com/libresh/sponsor/4/website" target="_blank"><img src="https://opencollective.com/libresh/sponsor/4/avatar.svg"></a>
<a href="https://opencollective.com/libresh/sponsor/5/website" target="_blank"><img src="https://opencollective.com/libresh/sponsor/5/avatar.svg"></a>
<a href="https://opencollective.com/libresh/sponsor/6/website" target="_blank"><img src="https://opencollective.com/libresh/sponsor/6/avatar.svg"></a>
<a href="https://opencollective.com/libresh/sponsor/7/website" target="_blank"><img src="https://opencollective.com/libresh/sponsor/7/avatar.svg"></a>
<a href="https://opencollective.com/libresh/sponsor/8/website" target="_blank"><img src="https://opencollective.com/libresh/sponsor/8/avatar.svg"></a>
<a href="https://opencollective.com/libresh/sponsor/9/website" target="_blank"><img src="https://opencollective.com/libresh/sponsor/9/avatar.svg"></a>