- TypeScript 43.6%
- Kotlin 41.8%
- Go 8.5%
- Shell 3.1%
- HTML 2.3%
- Other 0.6%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
| .github/workflows | ||
| .idea | ||
| .vscode | ||
| apps | ||
| assistive | ||
| docs | ||
| mobile | ||
| os | ||
| packages | ||
| recovery | ||
| yaak | ||
| .env.example | ||
| .gitattributes | ||
| .gitignore | ||
| .infisical.json | ||
| atlas.code-workspace | ||
| biome.json | ||
| bun.lock | ||
| compose.yaml | ||
| LICENSE | ||
| package.json | ||
| README.md | ||
| turbo.json | ||
Atlas
What is Atlas?
Atlas is a Taxi fleet management platform.
A lot of smaller taxi companies still rely on phone calls, handwritten logbooks and manual ride assignment. Atlas aims to provide a modern, centralized solution tailored towards smaller taxi companies while remaining scalable and flexible.
Atlas is designed to be deployed in an appliance like fashion on a Raspberry Pi 5 or Compute Module 5. Other deployments like docker are possible too but may require more setup or have limited functionality.
Atlas consists of three core components:
- Mobile application with android auto support
- Web application for administration and setup
- API service and backend to tie everything together
Getting started
There are multiple options for getting started with Atlas.
Purchase a device
The simplest option is to aquire a Atlas appliance from TaxiGerhard. This not only gives you the complete, ready to go, package of encrypted Device, Manual, Recovery Media and Powersupply but also allows you to aquire various support packages when ordering.
DIY device
Another option is to host Atlas on a dedicated appliance. AtlasOS is the custom managed OS that runs on Atlas appliances. Atlas applianes are RaspberryPi 5 based. It is highly recommended to use a Raspberry Pi 5 with 8GB of RAM or more. A 4GB Pi may suffice depending on usage but this is no guarantee.
A DIY Atlas device can either be provisioned encrypted or unencrypted.
Unencrypted
This is probably the simplest way to get up and running with a custom Atlas applliance.
Head over to the releases, download the latest AtlasOS image and flash the unencrpyted development image to the SSD or MicroSD of a Raspberry Pi using Raspberry Pi Imager or similar.
While this is simple and supports all features and functions, the storage media is unencrpyted and may be vulnerable to theft or other influences. This may not meet your required security standards.
Encrypted
If you choose to create a custom appliance and want this appliance to use encrypted media, you will need to restore from USB or use the Raspberry Pi provisioning tooling.
To restore from USB ensure your Raspberry Pi is configured to boot from USB and then follow the instructions in the manual. In short: Flash or copy the recovery files to your USB drive, plug it into the Raspberry Pi and then power the Pi and wait until it shuts down again. Unplug the USB, apply power, enjoy.
Docker or Podman
AtlasOS uses Podman to run Atlas. Podman or Docker can be used to run the AtlasOS containers on any host.
Running Atlas manually in Docker or Podman means that system management features are not available via the UI and to be manually performed.
Atlas container images are capable of running fully rootless and built to the highest security standards.
For testing and development, a docker compose is available in the repository root.
Bare Metal
Technically using bare metal is possible but highly discouraged. You are on your own.
Usage
To start using Atlas, after setting up, open a webbrowser and navigate to the management UI.
This can be done either by navigating to atlas.local or your configured domain or IP Address.
Note
Atlas uses a self signed certificate on the local network. This certificate will show as untrusted. This is expected.
Tip
The Atlas Appliances also offer a local console. If you prefer you can connect a Monitor, Mouse and Keyboard and use the Appliance locally.
Follow the setup wizard and complete the configuration. See the Manual for details.
Once done, the only thing left to do is to pair the mobile devices. For distributing Atlas to end devices it is recommended to make use of Androids fleet management tooling using tools like Fleetdm.
The application can be downloaded from the PlayStore and the server url is configured at the bottom of the login screen. This URL must be correct for Atlas to function.
Development
Atlas consists of various components. All components are managed in a turborepo monorepo.
The main components are the API, WebUI and Mobile application.
The API uses ElysiaJS, DrizzleORM and Better-Auth. Bun is used as the package manager, runtime and bundler.
The WebUI uses Vite, React, shadcnUI and Better-Auth as well as various libraries from the TanStack ecosystem. Vite is the bundler, bun is once again package manager.
The mobile app is a native Android application and developed using Android Studio.
bun install, bun run dev and bun run build should get you up and running in almost all projects.
Some assistive services are written in GO and theres a yaak workspace in the root of this repository to help test the API endpoints.
Visual Studio Code is recommended for developing the frontend as the extension support allows for helpful additions like embedding translation string previews in the source code.
GitHub Actions is used for auotmatically building all parts of the system including containers both on push as well as on PR.