Starter scaffold for the ExApp Python Track of the Nextcloud Developer Course.
This repo contains the directory structure and skeleton files you'll build on as you work through the Beginner modules. The main.py skeleton handles AppAPI registration — you'll add your endpoints on top of it.
-
Fork this repository, then clone your fork:
git clone https://github.com/YOUR_USERNAME/pinboard-python cd pinboard-pythonFork rather than clone directly: the course has you commit your own work as you go, and module 8 walks through publishing your app, which needs a repository you own.
-
Create and activate a virtual environment:
python3 -m venv .venv source .venv/bin/activate -
Install dependencies:
pip install -r requirements.txt
-
Follow the course starting from Module 2 — App Anatomy
If you have not set up a development environment yet, start with Setting Up Your Development Environment.
pinboard-python/
├── appinfo/
│ └── info.xml ← ExApp manifest
├── ex_app/
│ ├── lib/
│ │ └── main.py ← FastAPI server skeleton
│ ├── img/ ← app icons
│ ├── css/ ← stylesheets
│ └── js/ ← compiled frontend assets
├── l10n/ ← translation files
├── Makefile ← development commands (run, register, restart)
├── requirements.txt ← Python dependencies
└── .gitignore
make run # start the FastAPI dev server
make register # register with AppAPI in nextcloud-docker-dev
make restart # unregister and re-register (use after changing main.py)See the Makefile for configuration variables (APP_PORT, APP_SECRET, NEXTCLOUD).
- Python 3.10+
- Nextcloud 34 with AppAPI enabled
- nextcloud-docker-dev (set up in Module 1)
AGPL-3.0-or-later, the same licence as Nextcloud itself.