# The Lollipop Cloud Project

The Lollipop Cloud project is a way to self-host internet services, such as a website, contact list, file storage, or a calendar, through open-source technology and [ARM boards (link)](https://en.wikipedia.org/wiki/ARM_architecture). It allows for anyone with an ARM computer to host their own services.

(The above blurb came from [our website (link)](https://lollipopcloud.solutions/), in case you're just joining us.)

## Some Links Relevant to the Project

- [Code of Conduct (link)](code-of-conduct.md)
- [Contributing guidelines (link)](contributing/)
- [License (link)](LICENSE.md)

## Recommended Hardware
- A [single-board computer (SBC) (link)](https://en.wikipedia.org/wiki/Single-board_computer) like the [Orange Pi (link)](http://www.orangepi.org/) or [Odroid (link)](https://www.hardkernel.com/main/main.php) with [Armbian](https://www.armbian.com/) installed. Any SBC with 512MB RAM or better, and an arm32v7 or arm64v8 chip chip should be sufficient.
    - We have generated Armbian builds specifically for the Lollipop's supported boards. You can [download Armbian builds for Lollipops here (link)](https://dl.lollipopcloud.solutions/files/armbian).
    - **Note about the Raspberry Pi:** The [Raspberry Pi 3 (link)](https://www.raspberrypi.org/documentation/hardware/raspberrypi/README.md) with the BCM2837 processor, at least 512MB RAM, and Raspbian may work well as a Lollipop; however, we have not tested this configuration at this time.
- A means to interact with the SBC (monitor/keyboard, serial adapter, or ssh via ethernet).
- A wifi adapter (or two), USB cellular modem (3G/4G/WCDMA/LTE), [GPS module (link)](https://git.lollipopcloud.solutions/lollipop-cloud/docs/src/branch/master/hardware/gps.md), [RTC (Real Time Clock) (link)](https://git.lollipopcloud.solutions/lollipop-cloud/docs/src/branch/master/hardware/rtc.md), [Bluetooth Serial Terminal (link)](https://git.lollipopcloud.solutions/lollipop-cloud/docs/src/branch/master/hardware/bluetooth_terminal.md), other hardware you need for your custom setup. See also: [Hardware Considerations (link)](https://git.lollipopcloud.solutions/lollipop-cloud/docs/src/branch/master/hardware_notes.md).

## Initial Setup

[Setup For Beginners (link)](for-beginners.md): If you are new to installing Linux, or would like a little extra help walking through the initial creation of your Lollipop, please take a look our documentation written especially for beginners. Then skip down to the next section ([Networking](#Networking)) when you're ready.

If you're not using the [link for beginners](for-beginners.md), the following links are good first steps:
- Mirror this documentation locally with `git clone https://git.lollipopcloud.solutions/lollipop-cloud/docs.git /path/to/docs`
- [Download Armbian (link)](https://dl.lollipopcloud.solutions/files/armbian)
- [First Boot (link)](https://git.lollipopcloud.solutions/lollipop-cloud/docs/src/branch/master/armbian/first_boot.md)
- [Base Setup (link)](https://git.lollipopcloud.solutions/lollipop-cloud/docs/src/branch/master/armbian/base_setup.md)


## Networking Setup

- [Network Manager (networking setup tool) (link)](https://git.lollipopcloud.solutions/lollipop-cloud/docs/src/branch/master/armbian/network_manager.md)
- [Modem Manager (3G/LTE modems) (link)](https://git.lollipopcloud.solutions/lollipop-cloud/docs/src/branch/master/armbian/modem_manager.md)
- [FirewallD (firewall/routing) (link)](https://git.lollipopcloud.solutions/lollipop-cloud/docs/src/branch/master/armbian/firewalld.md)
- [Unbound (Non ISP DNS) (link)](https://git.lollipopcloud.solutions/lollipop-cloud/docs/src/branch/master/armbian/unbound.md)
- VPN Options
    - [Private Internet Access (VPN) (link)](https://git.lollipopcloud.solutions/lollipop-cloud/docs/src/branch/master/armbian/vpn/pia.md)
    - [vpn.ac (VPN) (link)](https://git.lollipopcloud.solutions/lollipop-cloud/docs/src/branch/master/armbian/vpn/vpn_ac.md)
    - [VPN Autoconnect (link)](https://git.lollipopcloud.solutions/lollipop-cloud/docs/src/branch/master/armbian/vpn/vpn_autoconnect.md)

## Fundamental Tools

- [Cockpit (recommended) (link)](https://git.lollipopcloud.solutions/lollipop-cloud/docs/src/branch/master/armbian/cockpit.md): simple browser-based management console/UI
- [Chrony (link)](https://git.lollipopcloud.solutions/lollipop-cloud/docs/src/branch/master/armbian/chrony.md): clock synchronization
- [Borg Backups (link)](https://git.lollipopcloud.solutions/lollipop-cloud/docs/src/branch/master/services/borg.md): simple, effective backups
- [Docker (link)](https://git.lollipopcloud.solutions/lollipop-cloud/docs/src/branch/master/armbian/docker.md): containerize your services
- [Let's Encrypt (link)](https://git.lollipopcloud.solutions/lollipop-cloud/docs/src/branch/master/services/acme_sh.md): SSL/TLS certificates for secure web communications
- [Incron (link)](https://git.lollipopcloud.solutions/lollipop-cloud/docs/src/branch/master/armbian/incron.md): a way to watch the filesystem for configuration changes and restart services
- [Caddy (link)](https://git.lollipopcloud.solutions/lollipop-cloud/docs/src/branch/master/services/caddy.md): web server and reverse https proxy
- [Pi Hole (link)](https://git.lollipopcloud.solutions/lollipop-cloud/docs/src/branch/master/services/pi_hole.md): ad-blocking that blocks ads before they are loaded, can help conserve bandwidth and data transfer
- [Searx (link)](https://git.lollipopcloud.solutions/lollipop-cloud/docs/src/branch/master/services/searx.md): self-hosted meta search engine

## Additional Services

- [Postgresl](https://git.lollipopcloud.solutions/lollipop-cloud/docs/src/branch/master/services/postgres.md): database server, required for NextCloud, Gitea, Wallabag, and TT-RSS, and other services; helpful if you will be a heavy user of your Lollipop Cloud
- [Monitoring](https://git.lollipopcloud.solutions/lollipop-cloud/docs/src/branch/master/armbian/monitoring.md): basic system monitoring
- [NextCloud](https://git.lollipopcloud.solutions/lollipop-cloud/docs/src/branch/master/services/nextcloud.md): file syncing, calendar syncing, contact syncing; an alternative to Dropbox and iCloud
- [Syncthing](https://git.lollipopcloud.solutions/lollipop-cloud/docs/src/branch/master/services/syncthing.md): sync for large numbers or large sized files, an alternative to NextCloud
- Gitea (documentation needed): self-hosted git, alternative to GitHub and GitLab
- [Wallabag](https://git.lollipopcloud.solutions/lollipop-cloud/docs/src/branch/master/services/wallabag.md): save websites for later, alternative to Read it Later and Pocket
- [TT-RSS](https://git.lollipopcloud.solutions/lollipop-cloud/docs/src/branch/master/services/ttrss.md): self-hosted RSS reader, alternative to Google Reader
