https://github.com/jaganganesh/pineapple-cloud
Self-hosted iCloud alternative for macOS & iOS with Apple Notes, Calendars, Contacts and Reminders sync via Docker, CalDAV/CardDAV & IMAP.
https://github.com/jaganganesh/pineapple-cloud
apple-notes caldav carddav docker-compose homelab icloud-alternative privacy-first raspberry-pi self-hosted synology
Last synced: 27 days ago
JSON representation
Self-hosted iCloud alternative for macOS & iOS with Apple Notes, Calendars, Contacts and Reminders sync via Docker, CalDAV/CardDAV & IMAP.
- Host: GitHub
- URL: https://github.com/jaganganesh/pineapple-cloud
- Owner: jaganganesh
- License: gpl-3.0
- Created: 2026-05-21T13:57:01.000Z (about 1 month ago)
- Default Branch: main
- Last Pushed: 2026-05-29T06:39:02.000Z (27 days ago)
- Last Synced: 2026-05-29T08:27:40.165Z (27 days ago)
- Topics: apple-notes, caldav, carddav, docker-compose, homelab, icloud-alternative, privacy-first, raspberry-pi, self-hosted, synology
- Homepage:
- Size: 3.08 MB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# ð Pineapple Cloud




[](https://github.com/sponsors/jaganganesh)
> Keep your Apple ecosystem. Keep your data yours.
A lightweight, privacy-first, self-hosted iCloud alternative for Apple users.
Pineapple Cloud lets you sync natively:
- ð Apple Notes
- ðïļ Calendar
- â
Reminders
- ðĪ Contacts
across macOS and iOS using a minimal Docker stack powered by:
- CalDAV
- CardDAV
- Local IMAP
Designed for:
- Raspberry Pi
- Synology NAS
- Mini PCs
- Homelabs
- Privacy-conscious Apple users
All while using **under 100MB of idle RAM**.

# âĻ Why Pineapple Cloud?
Most self-hosted collaboration platforms are massive.
| Platform | Typical RAM Usage |
| :------------------- | :---------------- |
| Nextcloud | 1GB+ |
| Full mail suites | Heavy |
| Enterprise groupware | Complex |
| **Pineapple Cloud** | **<100MB** |
Pineapple Cloud was built for people who want:
- native Apple app compatibility
- self-hosted privacy
- ultra-lightweight infrastructure
- simple Docker deployment
- zero vendor lock-in
No Electron apps.
No bloated dashboards.
No subscriptions.
No telemetry.
Just native Apple apps syncing directly with infrastructure you control.
# ð Privacy First
Pineapple Cloud keeps your data:
- on your hardware
- inside your network
- under your control
No third-party cloud sync providers.
No analytics.
No forced accounts.
No external dependency chains.
Your Notes, Calendars, Contacts, and Reminders stay yours.
# ð Features
- ð Native Apple Notes sync using local IMAP
- ðïļ Native Apple Calendar & Reminders sync via CalDAV
- ðĪ Native Apple Contacts sync via CardDAV
- ðŠķ Ultra-lightweight architecture (<100MB idle RAM)
- ðģ Simple Docker Compose deployment
- ð Optimized for Raspberry Pi and NAS systems
- ðĶ Portable volume-based storage
- ð Local-first privacy-focused design
- ⥠Fast startup and low CPU overhead
# ð§ How It Works
Apple uses multiple sync systems internally:
| Apple Service | Protocol |
| ------------- | -------- |
| Calendar | CalDAV |
| Reminders | CalDAV |
| Contacts | CardDAV |
| Apple Notes | IMAP |
Pineapple Cloud combines:
- **Radicale** â CalDAV + CardDAV
- **Local IMAP Mail Server** â Apple Notes syncing
inside a lightweight isolated Docker stack.
# ðïļ Architecture
```text
macOS / iPhone / iPad
â
ââââââââââââââââīâââââââââââââââ
â â
Radicale Container IMAP Container
(Calendar / Contacts) (Apple Notes)
â â
âââââââ Docker Network ââââââââ
```
# ⥠Quick Start
## 1. Clone the Repository
```bash
git clone https://github.com/jaganganesh/pineapple-cloud.git
cd pineapple-cloud
```
## 2. Create the Required Directories
```bash
mkdir -p \
data/mail-data \
data/mail-config \
data/radicale-data \
data/radicale-config \
data/radicale-certs
```
## 3. Create `docker-compose.yml`
```yaml
services:
# Apple Notes (IMAP)
imap-server:
image: mailserver/docker-mailserver:latest
container_name: apple-imap
ports:
- "143:143"
environment:
OVERRIDE_HOSTNAME: pineapple.cloud
ENABLE_POP3: "0"
ENABLE_SMTP: "0"
ENABLE_SPAMASSASSIN: "0"
ENABLE_CLAMAV: "0"
ENABLE_FAIL2BAN: "0"
ONE_DIR: "1"
cap_add:
- NET_ADMIN
volumes:
- ./data/mail-data:/var/mail
- ./data/mail-config:/tmp/docker-mailserver
restart: unless-stopped
# Contacts / Calendars / Reminders (CardDAV, CalDav)
radicale:
image: tomsquest/docker-radicale:latest
container_name: apple-dav
ports:
- "5232:5232"
volumes:
- ./data/radicale-data:/data
- ./data/radicale-config:/config:ro
- ./data/radicale-certs:/certs:ro
restart: unless-stopped
```
## 4. Start the Stack
```bash
docker compose up -d
```
# ðŽ Create Your Apple Notes Account
Apple Notes sync requires a local IMAP mailbox.
## Enter the container
```bash
docker exec -it apple-imap /bin/bash
```
## Create a user
```bash
setup email add your_name@pineapple.cloud
```
Then enter your password when prompted.
Exit the container afterward:
```bash
exit
```
# ð SSL / TLS Setup
Apple devices strongly prefer encrypted connections.
## Option A â Self-Signed Certificates (Recommended)
Generate certificates locally:
```bash
openssl req -x509 \
-newkey rsa:4096 \
-keyout ./data/radicale-certs/server.key \
-out ./data/radicale-certs/server.cert \
-sha256 \
-days 3650 \
-nodes \
-subj "/CN=127.0.0.1"
```
On macOS:
1. Open `server.cert`
2. Launch **Keychain Access**
3. Set certificate trust to:
- **Always Trust**
## Option B â Local HTTP Only
If running exclusively on:
- localhost
- isolated LAN
- private homelab subnet
you may choose to skip TLS.
macOS and iOS will display warning prompts during setup.
# ð macOS Setup Guide
Open:
```text
System Settings â Internet Accounts
```
## ðĪ Contacts (CardDAV)
Navigate to:
```text
Add Account â Add Other Account â CardDAV Account
```
Use:
| Field | Value |
| -------------- | ---------------------- |
| Account Type | Manual |
| Username | Your Radicale username |
| Password | Your password |
| Server Address | 127.0.0.1 |
| Port | 5232 |
| Server Path | / |
If using HTTP:
- Disable SSL
If using certificates:
- Enable SSL

## ðïļ Calendars & Reminders (CalDAV)
Navigate to:
```text
Add Account â Add Other Account â CalDAV Account
```
Use the same credentials configured in Radicale.

## ð Apple Notes (IMAP)
Navigate to:
```text
Add Account â Add Other Account â Mail Account
```
Use:
| Field | Value |
| -------------------- | ------------------------------------------------------------- |
| Email | [your_name@pineapple.cloud](mailto:your_name@pineapple.cloud) |
| Incoming Mail Server | 127.0.0.1 |
| Outgoing Mail Server | 127.0.0.1 |
When setup completes:
- â Disable Mail
- â
Enable Notes

# â ïļ Apple Notes Limitations
Apple Notes over IMAP is more limited than native iCloud Notes.
The following features are reduced or unavailable:
- â advanced typography styles
- â rich heading templates
- â interactive checklists
- â inline sketches
- â advanced embedded objects
For best compatibility:
- use standard text
- use bold/italics
- use markdown-style lists
Basic note synchronization works reliably.
# ðŠķ Lightweight by Design
Pineapple Cloud is intentionally engineered for low-resource systems.
Perfect for:
- Raspberry Pi Zero 2 W, 3 Model B/B+, 400, 4 Model B, 5
- Synology J-series
- Intel N100 mini PCs
- Low-power NAS systems
Designed to minimize:
- RAM usage
- disk writes
- CPU overhead
- thermal load
Ideal for always-on homelab deployments.
# ð Tested Platforms
- â
macOS
- â
iOS
- â
Apple Silicon Macs
- â
Raspberry Pi OS
- â
Ubuntu Server
- â
Docker
- â
Synology NAS
# ðĶ Portable Storage Layout
All persistent data lives inside:
```text
./data
```
This makes migrations extremely simple.
Move your stack between machines by copying:
```text
./data
```
and redeploying the containers.
# ð Comparison
| Feature | Pineapple Cloud | Nextcloud | iCloud |
| --------------------- | --------------- | --------- | ------ |
| Apple Notes Sync | â
| â | â
|
| Native Apple Apps | â
| Partial | â
|
| Self-Hosted | â
| â
| â |
| Lightweight | â
| â | N/A |
| Raspberry Pi Friendly | â
| â ïļ Heavy | â |
| Docker Compose | â
| â
| â |
| Vendor Lock-In | â | â | â
|
| Privacy First | â
| â ïļ | â |
# ð§ Why Self-Host?
Cloud convenience should not require surrendering ownership of your personal data.
Pineapple Cloud gives Apple users a way to preserve the native experience they already love while moving synchronization back onto infrastructure they control.
Your server.
Your rules.
Your data.
# ðĪ Contributing
Contributions are welcome.
1. Fork the repository
2. Create a feature branch
```bash
git checkout -b feature/amazing-feature
```
3. Commit your changes
```bash
git commit -m "feat: add amazing feature"
```
4. Push to your branch
```bash
git push origin feature/amazing-feature
```
5. Open a Pull Request
# â Support the Project
If Pineapple Cloud helped you reclaim ownership of your Apple data:
- â Star the repository
- ðī Fork the project
- ð§ Share it with the self-hosted community
- ð ïļ Contribute improvements
Helping others discover the project makes a huge difference.
# âïļ License
Licensed under the GNU GPLv3 License.
See:
```text
LICENSE
```
for details.