---
title: "Deploy Filebrowser | Official Image, Pinned, No Stock Password"
description: "Official image, pinned. Generated admin password, no admin/admin."
category: "Storage"
url: https://railway.com/deploy/filebrowser-or-official-image-pinned-no-
---

# Deploy Filebrowser | Official Image, Pinned, No Stock Password

Official image, pinned. Generated admin password, no admin/admin.

**[Deploy Filebrowser | Official Image, Pinned, No Stock Password on Railway](https://railway.com/template/filebrowser-or-official-image-pinned-no-)**

- **Creator:** Pavel Volkov's Projects
- **Category:** Storage
- **Total deploys:** 1

## Template content

### filebrowser

- **Source:** https://github.com/ak40u/filebrowser-railway-starter
- **Public domain:** Yes

## Documentation

# Filebrowser

A web file manager on a persistent volume, built from the official image, pinned,
and refusing to start without a password.

## What this fixes

The existing Filebrowser template deploys `ghcr.io/brody192/filebrowser-template:latest`
- a third-party wrapper image, unpinned. Two things follow from that.

`:latest` means the version you get is whatever was pushed most recently, so two
deploys a month apart are not the same software, and a redeploy can change the
application under a running volume. And the wrapper is one person's repository
rather than the upstream project, so what actually runs is a step removed from
anything the Filebrowser maintainers publish.

That template also leaves `WEB_USERNAME` as a required field with no value, and
says nothing about the password, which upstream defaults to `admin`.

## What this does instead

Builds on `filebrowser/filebrowser:v2.63.21` - the official image, at a fixed
version - with a small entrypoint that handles first boot.

- **No stock credentials.** The admin account is created with `ADMIN_PASSWORD`,
  which this template generates for you. If it is empty the container exits with
  a message saying so, rather than putting an `admin`/`admin` file manager on a
  public domain.
- **First boot is atomic.** The database is built at a temporary path and moved
  into place only once the account is in it, so a failed account creation cannot
  leave behind a database with no users in it.
- **Redeploys keep your data.** The account, the shares and the files are created
  once and then left alone.
- **One volume.** The stock image scatters state across `/config`, `/database`
  and `/srv`. Here the database and the files both live under `/data` - one
  volume to attach, one thing to back up.
- **Command Runner off.** The process runs as root, because that is what writing
  to a mounted volume requires; Command Runner is disabled so that does not turn
  into a root shell behind a login form.

## Using it

Open the domain and log in as `admin` with the generated `ADMIN_PASSWORD` from
the service variables. Upload files, share them with links, edit text in place.

To serve files another service writes, mount the same volume in both and point
this one at that directory with `FB_ROOT`.

## Configuration

| Variable | Required | Purpose |
|----------|----------|---------|
| `ADMIN_PASSWORD` | yes | Admin password - generated by the template |
| `ADMIN_USERNAME` | no | Defaults to `admin` |
| `FB_ROOT` | no | Directory being served, default `/data/files` |
| `FB_DATABASE` | no | Database file, default `/data/filebrowser.db` |

## Scaling note

State is one SQLite database on one volume, so this runs as a single instance.
That is the shape of the application, not a limitation of the template.

Source: https://github.com/ak40u/filebrowser-railway-starter


## Similar templates

- [Garage S3 Storage](https://railway.com/deploy/garage-s3-storage) — Ultra-light S3 server: fast, open-source, plug-and-play.
- [Redis](https://railway.com/deploy/redis-1) — Self Host Latest Redis with Railway
- [EasyImg](https://railway.com/deploy/easyimg) — Simple self-hostable Nuxt.js personal image hosting system.

Open this page in a browser: https://railway.com/deploy/filebrowser-or-official-image-pinned-no-
