---
title: "Deploy ente"
description: "The API server for ente photos & auth (2fa). "
category: "Storage"
url: https://railway.com/deploy/O5gHP2
---

# Deploy ente

The API server for ente photos & auth (2fa). 

**[Deploy ente on Railway](https://railway.com/template/O5gHP2)**

Machine-readable deploy manifest (JSON, validated by TemplateCI): https://railway.com/deploy/O5gHP2/manifest.json

- **Creator:** Luka Kilic's Projects
- **Category:** Storage
- **Total deploys:** 33

## Template content

### postgres https://devicons.railway.app/i/postgresql.svg

- **Image:** ghcr.io/railwayapp-templates/postgres-ssl:16

### museum https://avatars.githubusercontent.com/u/64603161

- **Image:** ghcr.io/ente-io/server
- **Public domain:** Yes

## Documentation

![](https://github.com/ente-io/ente/raw/74377a93d8e20e969d9a2531f32f577b5f0ef090/.github/assets/ente-rocketship.png)

## Overview

Ente is a fully open-source, end-to-end encrypted platform designed for storing data in the cloud without requiring trust in the service provider. Built on this platform are two apps: Ente Photos (an alternative to Apple and Google Photos) and Ente Auth (a 2FA alternative to the deprecated Authy).

Learn more at [ente.io](https://ente.io).

## Configuration

### Environment Variables

#### S3 Storage

Configure the S3 variables `S3_ACCESS_KEY_ID`, `S3_ACCESS_KEY_SECRET`, `S3_ENDPOINT`, `S3_BUCKET`, and `S3_REGION` if you want to use Ente Photos. Leave these variables empty if you're only planning to use Ente Auth.

#### Cryptographic Keys

For a quick start, you can leave the `ENTE_KEY_ENCRYPTION`, `ENTE_KEY_HASH`, and `ENTE_KEY_JWT` variables empty, although it's recommended to generate new keys. See details [here](https://github.com/ente-io/ente/tree/74377a93d8e20e969d9a2531f32f577b5f0ef090/server/tools/gen-random-keys).

#### Verification Code

Creating an account typically requires confirming it with a verification code sent via email. To complete the verification, you have two options: either set values for the optional variables `ENTE_INTERNAL_HARDCODED-OTT_LOCAL-DOMAIN-SUFFIX` and `ENTE_INTERNAL_HARDCODED-OTT_LOCAL-DOMAIN-VALUE`, or retrieve the code from the deployment logs.

### Client App

Once the server is deployed, Railway will automatically generate a public URL listening on port 8080. The URL will look like "https://your-project.up.railway.app". To connect the client app to your server, tap 7 times on the onboarding screen to bring up a page where you can configure this URL as your endpoint. For more details, see [here](https://help.ente.io/self-hosting/guides/custom-server/).

Create an account and use the verification code as described above.

## Increase Storage Quota

By default, the storage quota is set to 5GB. To increase it to 1TB, go to the Postgres service and view the database under "Data". Navigate to the "users" table, select the user you want to update, and change the following fields:

- `bonus_id`: `self-hosted-myself`
- `storage`: `1099511627776`
- `type`: `ADD_ON_SUPPORT`
- `valid_till`: `0`

---

### Shared Albums

You can enable shared folders with a self-hosted instance. However, for simplicity, this template doesn't include that configuration. For more details, see [here](https://help.ente.io/self-hosting/faq/sharing).

## Similar templates

- [RustFS | (Just Updated) S3 Object Store, Public URL and Keys Set](https://railway.com/deploy/rustfs-or-just-updated-s3-object-store-p) — S3-compatible object store, keys and public URL preset, volume kept
- [TimescaleDB](https://railway.com/deploy/timescaledb-railway-template) — A PostgreSQL-based time-series database for analytics on Railway.
- [Garage S3 Storage](https://railway.com/deploy/garage-s3-storage) — Ultra-light S3 server: fast, open-source, plug-and-play.

Open this page in a browser: https://railway.com/deploy/O5gHP2
