# PostgreSQL en tu VPS, administrado desde el panel

Instalás PostgreSQL con una contraseña segura generada al momento y después creás bases, usuarios y permisos con formularios, sin psql. Para trabajar con los datos tenés un gestor web con grilla editable, consola SQL y exportación a Excel. Y si otro servidor necesita esta base, se conecta por un túnel SSH cifrado: el puerto 5432 no se abre a Internet en ningún momento.

URL: https://ardumaker.com/servicios/postgresql/

- Instalación en un clic
- Permisos por base
- Sin exponer el 5432

## Así se ve en el panel

Capturas reales del panel de ArduMaker, no mockups.

![PostgreSQL: PostgreSQL en el panel](https://ardumaker.com/screenshots/servicios/postgresql-1.jpg)
**PostgreSQL en el panel**. Estado, puerto, bases y usuarios del servicio.

![PostgreSQL: Estructura de una tabla](https://ardumaker.com/screenshots/servicios/postgresql-2.jpg)
**Estructura de una tabla**. Columnas, tipos, nulos y claves foráneas.

## Una base lista para usar, también desde afuera

Desde Apps instalás una base PostgreSQL con su usuario propio y, si querés, ya abierta a internet de forma segura.

- Crea la base y un usuario que es dueño solo de esa base: no entra a ninguna otra.
- Acceso externo con TLS obligatorio, por un puerto propio: el 5432 nunca queda expuesto.
- Vos decidís desde qué IP se puede entrar; también podés autorizar un nombre de host.
- La cadena de conexión queda lista para copiar, y la contraseña se muestra solo a pedido.
- Ves en vivo desde qué IP se están conectando y la sumás a la lista con un clic.

## Antes de instalarlo

### Usalo cuando

- Tu aplicación necesita una base relacional con transacciones, relaciones entre tablas y consultas SQL completas.
- Querés conectarte desde tu máquina, desde otro servidor o desde un servicio externo, con TLS y solo desde las IP que autorices.
- Vas a usar un ORM o un framework que la trae por defecto (Django, Rails, Prisma, n8n).

### No es lo indicado si

- Solo necesitás caché, sesiones o colas: eso es Redis.
- La aplicación está escrita para MySQL o MariaDB (WordPress, por ejemplo).

### Cómo probar que quedó funcionando

1. **Copiá la cadena de conexión y conectate**: psql "postgresql://usuario:clave@db-123.arducloud.com:61061/app?sslmode=require" -c "select version();" — tiene que devolver la versión de PostgreSQL.
2. **Comprobá que es tu base y nada más**: Dentro de psql corré \conninfo: usuario, base y conexión cifrada. El usuario de la app es dueño de su base y no entra a ninguna otra.
3. **Escribí y leé algo**: create table prueba(id int); insert into prueba values (1); select * from prueba; drop table prueba;

### Consejos

- Desde afuera solo entran las IP autorizadas; si no conecta, lo primero es revisar que tu IP esté en la lista.
- Usá siempre sslmode=require (o verify-full): sin TLS la conexión es rechazada.
- Desde una app que corre en el mismo VPS usá la conexión local: es más rápida y no sale a internet.
- La contraseña se muestra a pedido y solo a los administradores. No la guardes en el repositorio.
- Configurá los backups del VPS antes de poner datos de producción.

## Lo de todos los días, sin psql

Y psql sigue ahí por SSH cuando lo necesites.

- **Instalación con contraseña segura**: Si no definís la contraseña del usuario postgres, se genera una aleatoria segura.
- **Estado de un vistazo**: Activo o no, versión, puerto 5432, cantidad de bases y de usuarios.
- **Bases de datos**: Listar (sin las del sistema), crear eligiendo propietario, ver tamaño y fecha de creación, y eliminar.
- **Usuarios**: Crear con o sin superusuario, ver si pueden crear bases o roles, cambiar la contraseña y eliminar.
- **Permisos por base**: Dar y quitar ALL, SELECT, INSERT, UPDATE, DELETE, CREATE, USAGE y más, por usuario y por base. Ideal para un usuario de solo lectura.
- **Tablas y registros**: Listar las tablas de cada base y ver los últimos registros (hasta 1000) sin abrir un cliente SQL.
- **Gestor web completo**: Grilla editable, consola SQL de solo lectura, EXPLAIN e importación y exportación a CSV y Excel, por túnel SSH privado.
- **El 5432 nunca se abre a Internet**: El motor escucha solo en localhost. Desde otro VPS tuyo se llega por un túnel SSH cifrado, sin puertos públicos. Si necesitás entrar desde afuera, el acceso externo es opcional: usa un puerto propio con TLS obligatorio y solo desde las IP que autorices, y lo cerrás cuando quieras.
- **Backups incluidos**: Entra en el backup del VPS, y podés armar tu propio volcado como tarea programada desde el panel.
- **Root real si lo querés**: psql, pg_dump, extensiones, postgresql.conf: tenés el servidor entero por SSH. El panel es un atajo, no una jaula.

## Una base lista para tu app

1. **Instalá PostgreSQL**: Un clic, con contraseña segura generada.
2. **Creá base y usuario**: Con el nombre de tu app y un usuario propio.
3. **Dale permisos**: Solo los que la app necesita.
4. **Conectá tu app**: En localhost:5432 desde el mismo VPS, o por túnel SSH desde otro VPS.
5. **Conectá desde otro servidor**: Con un túnel SSH entre tus VPS, la base aparece en localhost del otro sin abrir un solo puerto.

## Cómo funciona por debajo, y qué tener en cuenta

Lo que conviene saber antes de empezar, sin letra chica.

- PostgreSQL escucha en el puerto 5432 en localhost del VPS y ese puerto no se publica nunca: es la decisión que evita la mayoría de los incidentes con bases de datos. Lo único que puede llegar a Internet es un acceso externo propio, en otro puerto, con TLS obligatorio y solo para las IP que autorices: desde el panel se propone con tu IP actual y lo cerrás cuando quieras; por MCP queda cerrado salvo que indiques IP.
- Para que otro VPS la use, se arma un túnel SSH entre los dos: la base aparece en localhost del segundo servidor y el tráfico va cifrado. No hay que abrir el 5432 ni poner la IP en una lista blanca.
- El gestor web también entra por ese túnel privado, no por una conexión directa desde el navegador.
- Si no definís la contraseña del usuario postgres al instalar, se genera una aleatoria segura y se te muestra al terminar. No queda una contraseña por defecto dando vueltas.
- Los permisos se dan por usuario y por base: ALL, SELECT, INSERT, UPDATE, DELETE, CREATE, USAGE y más. Un usuario de solo lectura para un dashboard es dos clics.
- Los nombres de usuario admiten minúsculas, números y guion bajo; los nombres de base se normalizan a minúsculas, que es como Postgres los va a tratar igual.
- Necesita systemd y una base Debian o Ubuntu. Está verificado en producción sobre Ubuntu 22.04 y es compatible con 18.04, 20.04, 24.04 y 26.04. En 16.04 no, porque systemd 229 no arranca sobre un host con cgroup v2.
- El gestor web pide algo más: usa un túnel sobre sshd_config.d, así que necesita Ubuntu 22.04 o superior. En 20.04 y anteriores la configuración no se aplica y queda deshabilitado.
- La base entra en el backup del VPS. Si querés un volcado propio con tu retención, se arma como tarea programada desde el panel.
- Por SSH tenés el servidor entero: psql, pg_dump, extensiones y postgresql.conf. El panel cubre lo de todos los días, no te quita el resto.
- Root real por SSH: el panel es un atajo, no una jaula. Todo lo que hace por botón también lo podés hacer a mano.

## También se lo podés pedir a Claude, ChatGPT o Cursor

Todo lo que ves en el panel lo puede hacer tu agente de IA a través del servidor MCP de ArduMaker: con tu autorización, con el alcance que le des y con cada acción auditada. [Ver qué hace el MCP](https://ardumaker.com/mcp/bases-de-datos/)

## PostgreSQL: preguntas frecuentes

### ¿Cómo conecto a PostgreSQL desde otro servidor sin exponerlo?

Con un túnel SSH entre tus VPS. La base queda disponible en localhost del otro servidor y el tráfico va cifrado, sin abrir el 5432 a Internet ni mantener listas blancas de IP. Tu app se conecta a localhost:5432 como si la base fuera local.

### ¿Es seguro exponer Postgres a Internet?

Exponer el 5432 tal cual es la forma más común de que te comprometan una base, y acá no se hace nunca: el motor escucha solo en localhost. Hay dos caminos para llegar desde afuera: el túnel SSH entre tus VPS (el único puerto que se abre es el del túnel, y atiende a un usuario sin shell que solo puede hacer port forwarding) y el acceso externo opcional, que publica un puerto propio con TLS obligatorio y solo para las IP que autorices. Abrirlo a cualquier IP exige una confirmación explícita.

### ¿Qué contraseña queda si no pongo ninguna?

Se genera una aleatoria segura y se te muestra al terminar la instalación. No queda una contraseña por defecto ni un usuario sin contraseña.

### ¿Puedo ver y editar los datos sin un cliente SQL?

Sí. Desde el panel ves las tablas y los últimos registros, y el gestor web te da una grilla editable, consola SQL, EXPLAIN e importación y exportación a CSV y Excel.

### ¿Puedo crear un usuario de solo lectura?

Sí, dándole solo SELECT sobre la base que quieras. Es el caso típico de un dashboard o un informe que no tiene por qué poder escribir.

### ¿Puedo seguir usando psql y pg_dump?

Sí, tenés root por SSH y el PostgreSQL completo: extensiones, postgresql.conf, lo que necesites. El panel cubre lo de todos los días sin quitarte el resto.

### ¿Hay backups de la base?

Entra en el backup del VPS. Si querés un volcado propio con tu retención y tu horario, se arma como tarea programada desde el panel.

### ¿Qué versiones de Ubuntu soporta?

PostgreSQL funciona desde 18.04 en adelante y está verificado en producción sobre 22.04. El gestor web necesita 22.04 o superior, porque usa un túnel sobre sshd_config.d que las versiones anteriores no aplican.

### ¿Cuánto cuesta?

Nada aparte del VPS. No es una base gestionada que se factura por hora: corre en tu servidor, con el precio fijo del plan.

## Servicios que suelen ir juntos

Todo corre en el mismo VPS y se maneja desde el mismo panel.

- [Gestor de bases de datos](https://ardumaker.com/servicios/gestor-bases-de-datos/): Una grilla web para PostgreSQL y MySQL: editar filas, SQL, EXPLAIN e importar y exportar CSV y Excel por túnel privado.
- [MySQL](https://ardumaker.com/servicios/mysql/): Instalás MySQL y administrás bases, usuarios por host y permisos sin tocar la consola.
- [Backups automáticos](https://ardumaker.com/servicios/backups/): Copia completa semanal en caliente, las últimas 4 guardadas y una copia final al eliminar el VPS.

**Tu PostgreSQL, en tu servidor y sin puertos abiertos** Instalalo con un clic desde el panel de cualquier VPS. No es un producto aparte: está en el panel de cualquier VPS de ArduMaker, junto al root real por SSH. [Ver planes](https://ardumaker.com/precios/)
