diff --git a/Dockerfile b/Dockerfile index 296e08b..6d1e41b 100644 --- a/Dockerfile +++ b/Dockerfile @@ -6,6 +6,11 @@ COPY . . RUN npm run build FROM caddy:2-alpine +LABEL org.opencontainers.image.title="Atmosphere Office" +LABEL org.opencontainers.image.description="Local-first office suite for the AT Protocol ecosystem" +LABEL org.opencontainers.image.url="https://tangled.org/scottlanoue.com/atmosphere-office" +LABEL org.opencontainers.image.source="https://tangled.org/scottlanoue.com/atmosphere-office" +LABEL org.opencontainers.image.licenses="AGPL-3.0" COPY Caddyfile /etc/caddy/Caddyfile COPY --from=builder /app/dist /srv EXPOSE 8080 diff --git a/README.md b/README.md new file mode 100644 index 0000000..d97acc3 --- /dev/null +++ b/README.md @@ -0,0 +1,38 @@ +# Atmosphere Office + +A local-first office suite for the [AT Protocol](https://atproto.com) ecosystem. + +Documents, spreadsheets, slides, forms, diagrams, and calendars — all stored locally in your browser. Sign in with your Bluesky account. + +## Features + +- **Local-first** — your data stays in your browser's IndexedDB +- **AT Proto identity** — sign in with any Bluesky handle +- **No server required** — runs as a static site +- **Offline capable** — works without an internet connection via service worker +- **Dark mode** — automatic or manual theme switching + +## Operator Deployment + +PDS operators can host Atmosphere Office for their users: + +```bash +docker pull atcr.io/scottlanoue.com/atmosphere-office:latest +docker compose up -d +``` + +Configure `instance-info.json` to match your deployment flavor and enable features as you deploy backend services. See `docker-compose.yml` for details. + +## Development + +```bash +npm ci +npm test +npm run build +``` + +## License + +[AGPL-3.0](LICENSE) + +Built by [Atmosphere Mail LLC](https://atmospheremail.com).