Skip to content

About

PlaceOS control and management Interface.

Resources

Code of conduct

Security policy

Stars

1 star

Watchers

1 watching

Forks

Latest commit

 

History

2,199 Commits

Folders and files

Repository files navigation

PlaceOS Backoffice

Build Test

The PlaceOS administration interface for managing systems, modules, drivers, zones, users, domains, repositories, triggers, and cluster settings.

Backoffice is built with Angular 22, standalone components, signals, zoneless change detection, and the PlaceOS TypeScript client.

Requirements

  • Bun 1.3.11
  • A PlaceOS backend (the development proxy uses placeos-dev.aca.im by default)

Getting started

bun install
bun run start

Open http://localhost:4200. bun install also generates the local version metadata used by the application.

To use another PlaceOS backend, update domain, secure, and valid_ssl in config/proxy.conf.js, then restart the development server.

Commands

bun run start      # Start the development server on port 4200
bun run build      # Create a production build
bun run lint       # Run ESLint
bun run test       # Run the Vitest unit tests
bun run test:ci    # Run the unit-test command used in CI

Production builds are written to dist/backoffice/browser.

Install the Playwright browsers once before running the end-to-end tests:

bunx playwright install --with-deps
bun run e2e

See e2e/README.md for browser selection, live-environment configuration, and focused test commands.

Project layout

src/app/
├── common/       Shared services, API setup, signals, and utilities
├── ui/           Reusable components, form controls, pipes, and guards
├── overlays/     Shared dialogs and overlays
├── admin/        Cluster and platform administration
└── <feature>/    Feature routes, components, utilities, and state services

src/tests/        Vitest unit tests
e2e/             Playwright tests and page objects
user-stories/    Feature behaviour and acceptance criteria
config/          Development proxy and build metadata scripts

Most feature areas are lazy-loaded from src/app/app.routes.ts. The application uses hash-based routing and enables its service worker only in production.

Error reporting

Backoffice sends errors to Sentry. See docs/sentry.md to set the DSN for a domain and to set up source map uploads.

Demo site

The backoffice Vercel project serves backoffice.demo.place.tech. Vercel deploys only the backoffice-demo branch. The Vercel team can create a limited number of deployments each day, and Vercel counts failed and canceled deployments too. Thus, other branches must not create Vercel deployments:

  • vercel.json turns off Vercel deployments for all branches except backoffice-demo.
  • The BUILD workflow adds a vercel.json that turns off Vercel deployments to each build/* branch commit. Vercel reads vercel.json from the pushed commit, and build branches do not contain the root file.

The Demo Site workflow moves backoffice-demo to develop once per day (17:00 UTC), if develop changed. To update the site now, run the workflow manually. Do not push to backoffice-demo directly.

Stack

  • Angular 22 with the Angular CDK and the app's own controls (src/app/ui/controls)
  • Nx 22 with the Angular application builder
  • Vitest and Playwright
  • Tailwind CSS 4
  • @placeos/ts-client for PlaceOS APIs
  • MQTT for real-time updates

License

MIT

About

PlaceOS control and management Interface.

Resources

Code of conduct

Security policy

Stars

1 star

Watchers

1 watching

Forks

Releases

Used by

Contributors

Languages