# Ordinary Server
[](https://crates.io/crates/ordinaryd/0.6.0)
[](https://docs.rs/ordinaryd/0.6.0)
[](https://deps.rs/crate/ordinaryd/0.6.0)
[](https://www.gnu.org/licenses/agpl-3.0)
Server daemon for Ordinary.
## Installation
Prebuilt releases are provided [here](https://codeberg.org/ordinarylabs/Ordinary/releases).
**Note:** When building from source, [`esbuild`](https://esbuild.github.io/getting-started/#install-esbuild)
will need to be installed because it is used to bundle the
[built-in](https://codeberg.org/ordinarylabs/Ordinary/src/branch/main/core/servers/app/assets/v1)
TypeScript/JavaScript files.
### git
```sh
## clone
git clone https://codeberg.org/ordinarylabs/Ordinary.git
## install (will take awhile)
cargo install --path Ordinary/core/apps/daemon/
```
### crates.io
```sh
cargo install ordinaryd@0.6.0
## OR if your platform has prebuilt binaries in <https://codeberg.org/ordinarylabs/Ordinary/releases>
cargo binstall ordinaryd@0.6.0
```
### Homebrew
```sh
## add the Ordinary Labs tap
brew tap ordinarylabs/tap --custom-remote https://codeberg.org/ordinarylabs/homebrew-tap
## supported for `aarch64-apple-darwin`, `aarch64-unknown-linux-gnu`, `x86_64-unknown-linux-gnu`
brew install ordinaryd
```
## Quick Start
Initialize a new instance.
```sh
ordinaryd init \
--password '******' \
--environment development \
--api-domain ordinaryd.local \
--storage-size 10000000
```
Start initialized instance.
```sh
ordinaryd api \
--environment development \
--provision localhost \
--insecure \
--port 4433 \
--redirect-port 8080 \
--storage-size 10000000 \
--stdio-logs \
--swagger
```
## CLI Documentation
```sh
ordinaryd --help
```
See: [docs/cli-reference.md](https://codeberg.org/ordinarylabs/Ordinary/src/branch/main/core/apps/daemon/docs/cli-reference.md).
## On Shutdown (terminate/ctrl-c)
When shutdown, the daemon will "gracefully" shut down all open http1/http2 connections
via [`hyper`'s](https://docs.rs/hyper/latest/hyper/)
[
`graceful_shutdown`](https://docs.rs/hyper-util/latest/hyper_util/server/conn/auto/struct.UpgradeableConnection.html#method.graceful_shutdown)
method; this should allow for all connection dependent tasks to resolve prior to termination.
Non-connection based background tasks (cache and log syncing) still need to be set up to run a final time prior to
termination
and after all connections have been closed.
## License
Copyright 2026 Ordinary Labs, LLC
Licensed under the GNU `AGPLv3`: <https://www.gnu.org/licenses/agpl-3.0.html>
## Security
THIS CODE HAS NOT BEEN AUDITED OR REVIEWED. USE AT YOUR OWN RISK.
Refer to the [Security Policy](https://codeberg.org/ordinarylabs/Ordinary/src/branch/main/SECURITY.md).