README.md 6.21 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

ekimia's avatar
ekimia committed
7
An ecosystem to ease  free software hosting \o/
8 9 10 11 12 13 14 15

We are working on bootstrapping an ecosystem of tools to facilitate the hosting of free software.
Think of it as
 - [ISPconfig](https://www.ispconfig.org/)
 - FLOSS [cpanel](https://www.cpanel.net/products/)
 - [cloudron](https://cloudron.io/) with email


ekimia's avatar
ekimia committed
16 17 18 19 20 21
  * Libre.sh V1 (Stable) is using docker-compose 
  * Libre.sh V2 (Alpha) is using [kubernetes](https://kubernetes.io/).


This ecosystem can be deployed on [Raspberries](https://kubecloud.io/setting-up-a-kubernetes-1-11-raspberry-pi-cluster-using-kubeadm-952bbda329c8) or on popular cloud providers and scale globally or anything in between. 
We can affirm that V2 scales globally because it is based on kubernetes, a tool developped from the experience of Google hosting containers at scale.
22

23 24
## Installation

ekimia's avatar
ekimia committed
25
[Video Fosdem](https://fosdem.org/2017/schedule/event/libre_sh/)
26 27

To install it, follow the video above and instructions in `INSTALL.md`.
28

Pierre Ozoux's avatar
Pierre Ozoux committed
29
### What is libre.sh
Pierre Ozoux's avatar
Pierre Ozoux committed
30

Pierre Ozoux's avatar
Pierre Ozoux committed
31
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
32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49

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
50

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

Pierre Ozoux's avatar
Pierre Ozoux committed
53 54
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
55 56 57 58
### Support

You can use the following channels to request community support:
 - [mailinglist/forum](https://forum.indie.host/t/about-the-libre-sh-category/71)
ekimia's avatar
ekimia committed
59
 - [chat](https://riot.allmende.io/#/room/#libre.sh:matrix.allmende.io)
Pierre Ozoux's avatar
Pierre Ozoux committed
60

Pierre Ozoux's avatar
Pierre Ozoux committed
61
For paid support, just send an inquiry to support@libre.sh.
Pierre Ozoux's avatar
Pierre Ozoux committed
62 63 64

All of this is hosted by libre.sh :)

Pierre Ozoux's avatar
Pierre Ozoux committed
65
## System modules
66

Pierre Ozoux's avatar
Pierre Ozoux committed
67
Here is a list of modules supported:
Pierre Ozoux's avatar
Pierre Ozoux committed
68
 - https proxy:
Pierre Ozoux's avatar
Pierre Ozoux committed
69 70
   - [HAProxy](https://github.com/indiehosters/haproxy)
   - [Nginx](https://github.com/indiehosters/nginx)
71
 - [monitoring](https://github.com/indiehosters/monitoring)
Pierre Ozoux's avatar
Pierre Ozoux committed
72 73
 - [git-puller](https://github.com/indiehosters/git-puller)
 - [backups](https://github.com/indiehosters/backups)
Pierre Ozoux's avatar
Pierre Ozoux committed
74

Pierre Ozoux's avatar
Pierre Ozoux committed
75 76
Go to their respective page for more details.

Pierre Ozoux's avatar
Pierre Ozoux committed
77
### To install and start a module:
Pierre Ozoux's avatar
Pierre Ozoux committed
78 79

```
Pierre Ozoux's avatar
Pierre Ozoux committed
80 81
cd /system/
git clone module
Pierre Ozoux's avatar
Pierre Ozoux committed
82
cd module
83 84
libre enable
libre start
Pierre Ozoux's avatar
Pierre Ozoux committed
85 86 87
```

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

Pierre Ozoux's avatar
Pierre Ozoux committed
89
### Installation
Pierre Ozoux's avatar
Pierre Ozoux committed
90

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

```
94
libre provision -a github.com/indiehosters/wordpress -u example.org -s
95 96
```

97
Run `libre provision` for more details on the capabilities of the script.
98

99
## To debug a module or an application:
Pierre Ozoux's avatar
Pierre Ozoux committed
100 101

```
102 103 104 105
libre ps
libre logs -f --tail=100
libre stop
libre restart
Pierre Ozoux's avatar
Pierre Ozoux committed
106 107
```

Pierre Ozoux's avatar
Pierre Ozoux committed
108
## Contributing
109

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

Pierre Ozoux's avatar
Pierre Ozoux committed
112
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
113

Pierre Ozoux's avatar
Pierre Ozoux committed
114 115 116 117 118 119 120
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!
121 122 123 124

## Contributors

This project exists thanks to all the people who contribute. [[Contribute](CONTRIBUTING.md)].
Samuel Laulhau's avatar
Samuel Laulhau committed
125
<a href="https://github.com/indiehosters/libre.sh/graphs/contributors"><img src="https://opencollective.com/libresh/contributors.svg?width=890&button=false" /></a>
126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150


## 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>