Introduction
pgweb gives you a browser-based interface to explore PostgreSQL databases without installing heavy desktop tools. It ships as a single Go binary that connects to your Postgres instance and serves a web UI for ad-hoc queries, table browsing, and data export. It is especially useful on remote servers where you only have SSH access.
What pgweb Does
- Provides a SQL query editor with syntax highlighting and query history
- Displays table structure, indexes, constraints, and row data in a browsable grid
- Exports query results to CSV, JSON, or XML formats
- Supports multiple simultaneous database connections via bookmarks
- Handles SSH tunnel connections for accessing remote databases securely
Architecture Overview
pgweb is a single Go binary that embeds a web server and static frontend assets. On startup it connects to PostgreSQL using the standard lib/pq driver. The frontend sends SQL queries via a REST API to the Go backend, which executes them and returns JSON results. There is no separate database or state; session data lives in memory for the duration of the process.
Self-Hosting & Configuration
- Single binary with no runtime dependencies; runs on Linux, macOS, and Windows
- Configure via CLI flags or environment variables for host, port, user, and database
- Supports SSL connections with configurable certificate paths
- Set --bind and --listen to control which interface and port the web UI listens on
- Use --readonly mode to prevent any data modification queries in shared environments
Key Features
- Zero-dependency single binary deployment with embedded web interface
- Built-in SSH tunnel support for connecting to databases behind firewalls
- Bookmarks for saving and switching between multiple database connections
- Query history preserved across browser sessions for quick recall
- Read-only mode for safe database exploration in production environments
Comparison with Similar Tools
- pgAdmin — Full-featured GUI with visual query builder and server management; much heavier
- DBeaver — Universal database tool supporting many databases; desktop app with Java dependency
- Adminer — PHP-based web database manager; supports more databases but requires a PHP runtime
- pgcli — Terminal-based PostgreSQL client with auto-completion; CLI-only, no web UI
- CloudBeaver — Web-based DBeaver; more features but requires Docker and significantly more resources
FAQ
Q: Can pgweb modify data or just read it? A: By default it allows full SQL execution including INSERT, UPDATE, and DELETE. Use --readonly flag to restrict to SELECT only.
Q: Does it support multiple users? A: pgweb does not have built-in user management. For multi-user access, place it behind a reverse proxy with authentication.
Q: Can I connect to multiple databases at once? A: Yes, using bookmarks or by opening multiple browser tabs with different connection parameters.
Q: Is it safe to expose pgweb to the internet? A: Not without a reverse proxy providing TLS and authentication. pgweb itself has no built-in auth beyond the database credentials.