진짜 PostgreSQL
익숙한 SQL 문법과 트랜잭션을 그대로 씁니다. 앱에서는 env.db로, 터미널에서는 psql·pgAdmin·익숙한 ORM으로 같은 데이터베이스에 접속합니다.
$ psql
runlot=# select * from users limit 4;
| id | name | active |
|---|---|---|
| 1 | jiwoo | true |
| 2 | minseo | true |
| 3 | haneul | true |
| 4 | seojun | false |
users · 4 rows
호스팅부터 PostgreSQL, 로그인, 파일 저장소, 이메일, Git 저장소까지 한 곳에서 사용하세요. Next.js 앱도 작은 API도 서버 설정 없이 배포할 수 있습니다.

runlot deploy
Bundling…
Bundled 12 files, 84.2 KiB
Uploading… (84.2 KiB)
Deploying…
v3 9f2c… 2026-09-16T04:12Z
→ https://my-app.me.runlot.dev
만들고, 배포하고, 필요한 기능을 붙입니다. CLI 를 설치하고 로그인한 뒤에는 이 세 명령이 전부입니다.
$ npm create runlot my-appNext.js, Hono, 정적 사이트 중에서 고릅니다. runlot.json과 필요한 설정은 처음부터 갖춰져 있습니다.
배포가 끝나면 바로 접속할 수 있는 URL이 발급됩니다.
$ runlot deploymy-app은 프로젝트이고 me는 개인 조직입니다.

runlot.json에 한 줄씩 적으면 배포가 만듭니다. 앱 코드에서는 env로 사용할 수 있습니다.
{
"database": true,
"auth": true,
"storage": true,
"email": true
}켜는 명령은 없습니다. 필요한 것만 적어도 됩니다.
프로젝트를 만들면 아래 기능이 함께 따라옵니다. 따로 신청하거나 연결할 것이 없습니다.
익숙한 SQL 문법과 트랜잭션을 그대로 씁니다. 앱에서는 env.db로, 터미널에서는 psql·pgAdmin·익숙한 ORM으로 같은 데이터베이스에 접속합니다.
$ psql
runlot=# select * from users limit 4;
| id | name | active |
|---|---|---|
| 1 | jiwoo | true |
| 2 | minseo | true |
| 3 | haneul | true |
| 4 | seojun | false |
users · 4 rows
이메일과 GitHub·Google 소셜 로그인, 세션 관리를 제공합니다. 서버 코드에서 env.auth.user()로 사용자를 확인하고 데이터 접근 권한을 관리할 수 있습니다.
env.storage로 이미지와 첨부 파일을 업로드하고, 유효 기간이 있는 서명된 URL로 공유합니다. 자격 증명은 워커 코드에 노출되지 않습니다.
프로젝트마다 메일 주소가 생깁니다. env.email.send로 보내고, 그 주소로 온 메일은 워커의 email() 핸들러가 받습니다. 주고받은 메일은 대시보드에서 확인합니다.
프로젝트 안에 저장소를 만들고 HTTPS나 SSH로 push 하면, 커밋과 파일이 대시보드에 바로 보입니다.
가지고 있는 도메인에 CNAME과 TXT 레코드를 추가하면 연결됩니다. 인증서는 자동으로 발급되고 갱신됩니다.
모든 커밋을 약 1분마다 암호화해 보관합니다. 대시보드에서 백업·커밋·시각 중 하나를 골라 그 지점으로 복원할 수 있습니다.

요청이 없는 동안에는 실행을 멈추고, 다음 요청이 오면 자동으로 다시 시작합니다. 데이터와 설정은 그대로 유지됩니다.
import { Hono } from "hono";import { Pool } from "@runlot/pg"; const app = new Hono<{ Bindings: Env }>(); app.get("/posts", async (c) => { const user = await c.env.auth.user(c.req.raw); const db = new Pool({ db: c.env.db }); const { rows } = await db.query( "select id, title from posts where owner = $1 limit 20", [user.id], ); return c.json(rows);}); app.post("/upload", async (c) => { const form = await c.req.formData(); const file = form.get("file") as File; const url = await c.env.storage.put("covers/" + file.name, file); return c.json({ url });}); export default app;env.로 바로 쓰는연결 문자열이나 API 키를 따로 설정하지 않아도 됩니다. env로 접근하고 익숙한 프레임워크와 ORM을 그대로 사용합니다.
$1 같은 자리표시자로 안전하게 전달됩니다env API를 사용합니다서비스마다 따로 설정하고 관리해야 했던 것들이 한 프로젝트 안에 있습니다.


2026년 9월 기준으로 각 서비스의 공개 문서와 요금 페이지를 정리했습니다. 주기적으로 다시 확인하지는 않으니, 달라진 점이 있으면 알려 주세요.
AI 코딩 도구로 사내 도구를 만드는 일은 쉬워졌지만, 배포는 여전히 누군가에게 부탁해야 합니다. runlot에서는 누가 만들었고 어떤 데이터를 쓰는지가 처음부터 붙어 있어서, 보안 담당자에게 따로 설명할 것이 없습니다.

조직을 만들고 구성원을 초대합니다. 관리자·구성원·뷰어 역할로 누가 배포하고 누가 보기만 하는지 정합니다.
프로젝트 접근을 조직 구성원만으로 설정하면 로그인한 구성원 외에는 접근할 수 없습니다. 앱 코드가 실행되기 전에 확인하므로, 앱마다 로그인 화면을 다시 만들 필요가 없습니다.
사내 도구 수십 개를 운영하더라도 도구마다 전용 PostgreSQL을 사용합니다. 어떤 데이터가 어디 있는지는 프로젝트 목록이 답합니다.
데이터를 회사 밖에 두기 어렵다면 자체 인프라에 설치하는 형태를 로드맵에 두고 있습니다. 시점은 문의해 주세요.
팀·조직 도입 문의무료 요금제 안에서는 청구되지 않습니다. 카드가 등록되어 있어도 마찬가지입니다.
개인 프로젝트와 사이드 프로젝트에 충분합니다.
$0/ 월
직접 만든 서비스를 자기 도메인으로 운영하는 분께 맞습니다.
$20/ 월
구성원 여러 명이 사내 도구를 올리는 회사를 위한 요금제입니다.
문의
무료 요금제는 요금으로 바뀌지 않습니다. 그날은 요청을 더 받지 않고, 다음 날부터 다시 받습니다. 프로는 포함량을 넘긴 만큼만 사용량으로 청구하며, 월 지출 한도가 기본으로 켜져 있어 그 위로는 올라가지 않습니다. 한도에 가까워지면 먼저 알려 드립니다.
네. 기존 저장소에서 runlot deploy 를 실행하면 됩니다. 프레임워크를 알아보고 필요한 설정을 만들어 둡니다. 데이터베이스는 pg_dump 로 뜬 파일을 그대로 넣을 수 있습니다.
네. 표준 PostgreSQL이라 pg_dump가 그대로 동작합니다. 파일은 평범한 객체라, env.storage.presign으로 어느 것이든 서명된 주소를 내줄 수 있습니다. 잠가 두는 형식은 쓰지 않습니다.
지금은 서울 리전 한 곳에서 실행됩니다. 앱과 데이터베이스가 같은 곳에 있어 국내 사용자에게 응답이 빠릅니다. 다만 서울에서 먼 곳의 사용자에게는 응답이 그만큼 늦습니다. 다른 리전은 준비되는 대로 안내해 드리겠습니다.