# 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](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](https://lollipopcloud.solutions/), in case you're just joining us.)

## Some Links Relevant to the Project

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

## Recommended Hardware
- A [single-board computer (SBC)](https://en.wikipedia.org/wiki/Single-board_computer) like the [Orange Pi](http://www.orangepi.org/) or [Odroid](https://www.hardkernel.com/) 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](https://dl.lollipopcloud.solutions/).
    - **Note about the Raspberry Pi:** The [Raspberry Pi 3](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, USB cellular modem (3G/4G/WCDMA/LTE), [GPS module](hardware/gps.md), [RTC (Real Time Clock)](hardware/rtc.md), [Bluetooth Serial Terminal](hardware/bluetooth_terminal.md), other hardware you need for your custom setup. See also: [Hardware Considerations](hardware/README.md).

## Initial Setup
[Setup For Beginners](for-beginners/README.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 Setup](#networking-setup)) when you're ready.

If you're not using the [link for beginners](for-beginners/README.md), the following links are good first steps:
- [Download Armbian](https://dl.lollipopcloud.solutions/files/armbian)
- [First Boot](armbian/first_boot.md)
- [Base Setup](armbian/base_setup.md)


## Networking Setup

- [Network Manager (networking setup tool)](armbian/network_manager.md)
- [Modem Manager (3G/LTE modems)](armbian/modem_manager.md)
- [FirewallD (firewall/routing)](armbian/firewalld.md)
- [Unbound (Non ISP DNS)](armbian/unbound.md)
- VPN Options
    - [Private Internet Access (VPN)](armbian/vpn/pia.md)
    - [vpn.ac (VPN)](armbian/vpn/vpn_ac.md)
    - [VPN Autoconnect](armbian/vpn/vpn_autoconnect.md)

## Fundamental Tools

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

## Additional Services

- [Postgresql](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](armbian/monitoring.md): basic system monitoring
- [NextCloud](services/nextcloud.md): file syncing, calendar syncing, contact syncing; an alternative to Dropbox and iCloud
- [Syncthing](services/syncthing.md): sync for large numbers or large sized files; an alternative to NextCloud
- [Gitea](services/gitea.md): self-hosted git and web interface for issues, pull-requests; an alternative to GitHub and GitLab
- [Wallabag](services/wallabag.md): save websites for later; alternative to Read it Later and Pocket
- [TT-RSS](services/ttrss.md): self-hosted RSS reader; alternative to Google Reader
