Astro Library is an open-source application that helps astrophotographers organize their complete imaging archive. Instead of focusing on image acquisition or processing, Astro Library focuses on what comes afterwards: preserving, enriching and browsing your work in a structured way.
Whether you've captured a handful of images or built an archive spanning thousands of sessions, Astro Library provides a central place to explore your astrophotography history.
Most astrophotographers have images scattered across folders, external drives and processing software.
M31/
Final/
PixInsight/
Siril/
Lights/
Calibration/
While this works, it quickly becomes difficult to answer questions like:
- When did I image this object?
- How much total integration time do I have?
- Which telescope or camera did I use?
- Which version became my final image?
- What did this object look like before I reprocessed it?
- Which targets have I already photographed?
- What should I image next?
Astro Library indexes your existing library and turns it into something you can browse, search and enjoy.
The goal is simple:
Spend less time digging through folders, and more time looking back at everything you've captured.
Browse your complete astrophotography collection by object, project and imaging session.
Instead of navigating folders, explore your library using meaningful metadata.
Automatically enrich your objects using astronomical databases including:
- SIMBAD
- VizieR
- NED
Additional metadata makes your library significantly more informative while keeping your original files untouched.
View your processed images alongside their associated sessions, source data and metadata.
Hero images make it easy to quickly recognize each object throughout the application.
Explore your astrophotography journey over time.
See when objects were captured, revisited or reprocessed, and follow your progression as an astrophotographer.
Browse FITS files directly from your library.
Support for richer FITS visualization is planned without requiring external software.
Discover what you've already photographed, what still needs more integration time and which targets are good candidates for your next clear night.
Astro Library does not replace your capture or processing software.
Instead, it complements the tools you already use.
Whether your workflow involves Siril, PixInsight, GraXpert, Photoshop or something entirely different, Astro Library aims to organize the resultsβnot dictate how you create them.
Your files remain yours.
The application indexes and enriches your library rather than forcing you into a proprietary format or workflow.
Astro Library models an astrophotography archive using four core concepts:
Object
βββ Project
βββ Session
βββ Files
- Objects represent astronomical targets.
- Projects group work on an object.
- Sessions represent individual imaging nights.
- Files contain everything associated with those sessions, from raw captures to processed exports.
This structure allows multiple processing workflows, multiple revisions and multiple imaging sessions to coexist naturally.
- Python
- FastAPI
- SQLAlchemy
- SQLite (currently)
- React
- TypeScript
- Vite
Designed to run as a self-hosted application using Docker.
Perfect for:
- NAS systems
- Home servers
- Mini PCs
- Dedicated observatory computers
Astro Library is early-stage software. It is useful for experimentation and development, but the data model, APIs and UI may still change before a stable release.
Keep backups of your astrophotography library and application data. Astro Library is designed to index and enrich your files, not to be the only copy of them.
docker compose -f docker/docker-compose.yml up --buildThe app will be available at http://localhost:8080.
By default, the compose file stores application data in a Docker volume and mounts example/library read-only as the library path. Change the ASTRO_LIBRARY_LIBRARY_DIR environment variable and volume mount to point at your own astrophotography archive.
Backend:
cd backend
uv sync --locked --all-extras --dev
cp .env.example .env
uv run uvicorn app.main:app --reloadFrontend:
cd frontend
npm ci
npm run devThe frontend runs through Vite and proxies /api requests to the backend.
cd frontend
npm run format:check
npm run lint
npm run typecheck
npm run buildcd backend
uv run ruff check .
uv run ruff format --check .
uv run pytestdocker run --rm -v "$PWD:/repo" -w /repo rhysd/actionlint:1.7.7The long-term vision includes:
- Rich FITS viewer
- Advanced search
- Equipment tracking
- Interactive sky planning
- Public gallery sharing
- Additional metadata providers
- Performance improvements for very large libraries
- Plugin architecture
Contributions are welcome.
Bug reports, feature requests and pull requests are greatly appreciated.
Please read CONTRIBUTING.md before opening a pull request.
For security issues, please read SECURITY.md.
If Astro Library is useful to you, you can support development through GitHub Sponsors or Ko-fi.
If you enjoy Astro Library, you can help by:
- β Starring the repository
- π Reporting bugs
- π‘ Suggesting features
- π Contributing code or documentation
- π£ Sharing the project with other astrophotographers
Astro Library is released under the MIT License.