---
title: "Deploy Domain Locker"
description: "The Central Hub for all your Domain Names"
category: "Observability"
url: https://railway.com/deploy/domain-locker
---

# Deploy Domain Locker

The Central Hub for all your Domain Names

**[Deploy Domain Locker on Railway](https://railway.com/template/domain-locker)**

- **Creator:** Youssef Siam
- **Category:** Observability
- **Total deploys:** 10

## Template content

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

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

### domainlocker https://domain-locker.com/favicon.ico

- **Source:** lissy93/domain-locker
- **Public domain:** Yes

## Documentation

# Deploy and Host Domain Locker on Railway

Domain Locker is a comprehensive domain name portfolio management platform that provides complete visibility of your domain assets in one central location. It automatically fetches and analyzes domain data, monitors SSL certificates, DNS records, registrars, and hosts, while sending configurable alerts for expirations and configuration changes. Built with Angular and TypeScript, it offers detailed analytics, security insights, and performance tracking for your entire domain portfolio.

## About Hosting Domain Locker

Hosting Domain Locker involves deploying a full-stack application consisting of an Angular frontend with Analog+Nitro, TypeScript API endpoints, and a PostgreSQL database. The deployment requires setting up automated cron jobs to periodically update domain data, monitor website uptime, check for expirations, and trigger notifications. Domain Locker fetches real-time data from external APIs for WHOIS information, DNS records, and SSL certificates, storing this data in PostgreSQL for historical tracking and analysis. The platform is designed to run in containers and requires proper configuration of database connections, authentication services, and notification channels (email, SMS, webhooks) to provide comprehensive domain monitoring and management capabilities.

## Common Use Cases

- **Domain Portfolio Management** - Track and manage multiple domain names across different registrars with centralized visibility and expiration monitoring
- **Security and Compliance Monitoring** - Continuously monitor SSL certificates, DNS configurations, and domain security to prevent expiration and detect unauthorized changes
- **Cost Tracking and Optimization** - Record purchase prices, renewal costs, and domain valuations to optimize your domain investment strategy
- **Team Collaboration** - Share domain information across teams with categorization, tagging, and linked resources for better organization
- **Automated Alert System** - Receive timely notifications via multiple channels (email, SMS, Slack, webhooks) for upcoming expirations and configuration changes

## Dependencies for Domain Locker Hosting

- **PostgreSQL Database** - Required for storing domain information, DNS records, SSL certificates, user data, and historical change logs
- **Node.js Runtime** - Application requires Node.js for running the Angular frontend and TypeScript API endpoints
- **Docker Environment** - Container runtime needed for deploying the Domain Locker application image
- **Cron Service** - Scheduled job execution for domain data updates, uptime monitoring, and notification triggers
- **External API Access** - Network connectivity to WHOIS services, DNS lookup services, and SSL certificate validation endpoints

### Deployment Dependencies

- [Domain Locker Docker Image](https://hub.docker.com/r/lissy93/domain-locker) - Official Docker container image
- [PostgreSQL 15 Alpine](https://hub.docker.com/_/postgres?tab=tags&amp;name=15-alpine) - Recommended database container
- [Database Schema](https://github.com/Lissy93/domain-locker/blob/main/db/schema.sql) - SQL schema file for database initialization
- [Self-Hosting Documentation](https://domain-locker.com/about/self-hosting) - Complete deployment guide
- [Docker Compose Template](https://github.com/Lissy93/domain-locker/blob/main/docker-compose.yml) - Reference configuration

### Implementation Details

**Required Environment Variables:**

```bash
# Database Configuration
DL_PG_HOST=
DL_PG_PORT=5432
DL_PG_USER=
DL_PG_PASSWORD=
DL_PG_NAME=domain_locker

# Application Port
PORT=3000
```

**Database Initialization:**

After PostgreSQL is deployed, apply the schema:
```bash
psql -h $DL_PG_HOST -U $DL_PG_USER -d $DL_PG_NAME -f ./db/schema.sql
```

**Required Cron Jobs:**

Set up the following scheduled endpoints:
- `/api/domain-updater` - Execute daily to update domain data and trigger notifications
- `/api/uptime-monitor` - Execute every 5-15 minutes for website health monitoring

**Volume Mounts:**
- PostgreSQL data persistence: `/var/lib/postgresql/data`

## Why Deploy Domain Locker on Railway?

Railway is a singular platform to deploy your infrastructure stack. Railway will host your infrastructure so you don't have to deal with configuration, while allowing you to vertically and horizontally scale it.

By deploying Domain Locker on Railway, you are one step closer to supporting a complete full-stack application with minimal burden. Host your servers, databases, AI agents, and more on Railway.

## Similar templates

- [Pyroscope profiling](https://railway.com/deploy/pyroscope-profiling) — Protected continuous profiling with durable Pyroscope storage.
- [SigOnly](https://railway.com/deploy/sigonly) — Deploy SigNoz with a working demo app & config in one click
- [Unwrapped Spotify Music Stats](https://railway.com/deploy/wide-bold) — Unwrapped Spotify Music Stats, Estatísticas de músicas disponíveis

Open this page in a browser: https://railway.com/deploy/domain-locker
