# Technical Documentation: sosedoff/pgweb

> ℹ️ **Provenance:** Multi-Tier Ingestion · [CodeWiki Reference](https://codewiki.google/github.com/sosedoff/pgweb)

### Overview (`README.md`)

# pgweb

Simple web-based and cross platform PostgreSQL database explorer.

[](https://github.com/sosedoff/pgweb/releases)
[](https://github.com/sosedoff/pgweb/actions?query=branch%3Amain)
[](https://goreportcard.com/report/github.com/sosedoff/pgweb)
[](https://pkg.go.dev/github.com/sosedoff/pgweb)
[](https://hub.docker.com/r/sosedoff/pgweb/)

## Overview

Pgweb is a web-based database explorer for PostgreSQL, written in Go, and works
on Mac, Linux and Windows machines. Distributed as a simple binary with zero dependencies.
Very easy to use and packs just the right amount of features.

[See application screenshots](SCREENS.md)

## Features

- Cross-platform: Mac/Linux/Windows (64bit).
- Simple installation (distributed as a single binary).
- Zero dependencies.
- Works with PostgreSQL 9.6+.
- Supports native SSH tunnels.
- Multiple database sessions.
- Execute and analyze custom SQL queries.
- Table and query data export to CSV/JSON/XML.
- Query history.
- Server bookmarks.

Visit [WIKI](https://github.com/sosedoff/pgweb/wiki) for more details.

## Demo

Visit https://pgweb-demo.fly.dev/ to see Pgweb in action.

## Installation

- [Precompiled binaries](https://github.com/sosedoff/pgweb/releases) for supported operating systems are available.
- [More installation options](https://github.com/sosedoff/pgweb/wiki/Installation)

## Usage

Start server:

```
pgweb
```

You can also provide connection flags:

```
pgweb --host localhost --user myuser --db mydb
```

Connection URL scheme is also supported:

```
pgweb --url postgres://user:password@host:port/database?sslmode=[mode]
pgweb --url "postgres:///database?host=/absolute/path/to/unix/socket/dir"
```

### Multiple database sessions

To enable multiple database sessions in pgweb, start the server with:

```
pgweb --sessions
```

Or set environment variable:

```
PGWEB_SESSIONS=1 pgweb
```

## Testing

Before running tests, make sure you have PostgreSQL server running on `localhost:5432`
interface. Also, you must have `postgres` user that could create new databases
in your local environment. Pgweb server should not be running at the same time.

Execute test suite:

```
make test
```

If you're using Docker locally, you might also run pgweb test suite against
all supported PostgreSQL version with a single command:

```
make test-all
```

## Contribute

- Fork this repository
- Create a new feature branch for a new functionality or bugfix
- Commit your changes
- Execute test suite
- Push your code and open a new pull request
- Use [issues](https://github.com/sosedoff/pgweb/issues) for any questions
- Check [wiki](https://github.com/sosedoff/pgweb/wiki) for extra documentation

## License

The MIT License (MIT). See [LICENSE](LICENSE) file for more details.

---

### Overview (`config/examples/connect_backend_go/README.md`)

# connect-backend-go

Example Golang backend for Pgweb Connect feature

## Usage

Run the backend:

```bash
go run main.go
```

Configure pgweb:

```bash
pgweb --sessions --connect-backend=http://localhost:4567 --connect-token=test
```

---

### Overview (`config/examples/connect_backend_ruby/README.md`)

# connect-backend-ruby

Example Ruby backend for Pgweb Connect feature

## Usage

Install and run the backend:

```bash
bundle install
ruby main.rb
```

Configure pgweb:

```bash
pgweb --sessions --connect-backend=http://localhost:4567 --connect-token=test
```

---

--- METRICS ---
- Files Extracted: 3
- Estimated Token Budget: ~855 tokens
- Canonical Reference: https://codewiki.google/github.com/sosedoff/pgweb
