Conversation
idalithb
commented
Jan 28, 2026
- Original draft and code edits from @justin-wonka
| ```bash | ||
| sudo apt update -y | ||
| sudo apt install cmake build-essential pkg-config libssl-dev curl -y | ||
| ``` |
There was a problem hiding this comment.
This seems to only work with Debian/Ubuntu-based Linux distros. We should have a cross-platform list of dependencies. These are the most extended ones.
- macOS
- Linux Arc (pacman)
- Red Hat Linux (rpm)
- Fedora Linux (dnf)
There was a problem hiding this comment.
@LNSD I can make inclusions for those :)
docs/ampup.md
Outdated
|
|
||
| --- | ||
|
|
||
| ## 2. Install Docker |
There was a problem hiding this comment.
Can we just refer the user to the Docker installation guides? For example: https://docs.docker.com/engine/install or https://docs.docker.com/desktop/
docs/ampup.md
Outdated
| Build Amp: | ||
|
|
||
| ```bash | ||
| ampup build | ||
| ``` |
There was a problem hiding this comment.
I don't think that a beginner would want to build an amp from sources. The fastest way is to just download the binaries via the default installation mechanism.
LNSD
left a comment
There was a problem hiding this comment.
Please, check my comments 🙂
|
|
||
| ## 4. Configure PostgresSQL Database | ||
|
|
||
| Amp uses PostgreSQL to store data. You'll run it in a Docker container. |
There was a problem hiding this comment.
I would reword this as something like: Amp uses a PostgreSQL DB as the system metadata store.
The idea would be to briefly convey that the pgdb is a critical requirement for the system, as it serves as the system's memory, indicating where it stores X or Y.
| Create Project Directory | ||
|
|
||
| ```bash | ||
| mkdir -p amp/configuration/{data,providers,manifests} | ||
| cd amp/configuration | ||
| ``` | ||
|
|
||
| **What this does**: Creates an organized folder structure: | ||
|
|
||
| - `amp/configuration/` - Main configuration folder | ||
| - `data/` - Data storage | ||
| - `providers/` - Provider configurations | ||
| - `manifests/` - Dataset manifests | ||
|
|
||
| ### Create Database Configuration | ||
|
|
||
| Create `docker-compose.yaml` file: | ||
|
|
||
| ```bash | ||
| cat <<'EOF' > docker-compose.yaml | ||
| services: | ||
| # PostgreSQL database at postgresql://postgres:postgres@localhost:5432/amp | ||
| db: | ||
| image: postgres:alpine | ||
| environment: | ||
| - POSTGRES_USER=postgres | ||
| - POSTGRES_PASSWORD=postgres | ||
| - PGUSER=postgres | ||
| - POSTGRES_DB=amp | ||
| ports: | ||
| - '5432:5432' | ||
|
|
||
| # Database explorer at http://localhost:7402/?pgsql=db&username=postgres&db=amp&ns=public | ||
| # Password: postgres | ||
| adminer: | ||
| image: adminer | ||
| restart: always | ||
| ports: | ||
| - 7402:8080 | ||
|
|
||
| # Observability stack (Grafana + OTEL + Loki + Tempo + Prometheus + Pyroscope) | ||
| # Access Grafana UI at http://localhost:3000 | ||
| lgtm: | ||
| image: grafana/otel-lgtm | ||
| ports: | ||
| - "3000:3000" # Grafana UI | ||
| - "4317:4317" # OTLP gRPC | ||
| - "4318:4318" # OTLP HTTP | ||
| volumes: | ||
| - ./grafana/dashboards:/var/lib/grafana/dashboards | ||
| - ./grafana/provisioning/dashboards:/otel-lgtm/grafana/conf/provisioning/dashboards | ||
| EOF | ||
| ``` | ||
|
|
||
| What each service does: | ||
|
|
||
| - `db`: PostgreSQL database where Amp stores datasets | ||
| - `adminer`: Web-based database browser (optional, helpful for beginners) | ||
| - `lgtm`: Monitoring dashboard (optional, for advanced users) |
There was a problem hiding this comment.
I am working on simplifying this for the amp solo command: #1654
| ## 6. Start Amp Server | ||
|
|
||
| Now start the Amp Server | ||
|
|
||
| ```bash | ||
| ampd --config ./config.toml server | ||
| ``` | ||
|
|
||
| **What this does:** Starts the main Amp server process. Leave this terminal window open. | ||
|
|
||
| ### Troubleshooting: | ||
|
|
||
| - Config file not found: Ensure you're in the amp/configuration/ directory or use the full path. | ||
| - Port already in use: Check if another Amp instance is running with ps aux | grep ampd. | ||
|
|
||
| --- |
There was a problem hiding this comment.
If the goal of this guide is to be a quickstart, we should recommend the amp solo command: an all-in-one command (controller+worker+server) that is ideal for local development and testing.
| ```bash | ||
| cd ~/amp/configuration | ||
| export AMP_CONFIG="$(pwd)/config.toml" | ||
| ampd dev --admin-server --flight-server --jsonl-server |
There was a problem hiding this comment.
ampd dev command is now ampd solo
|
|
||
| Copy this hash. You will need it in the next step. | ||
|
|
||
| Deploy the dataset (replace <HASH> with the hash from above): |
There was a problem hiding this comment.
Explain the "deploy" concept: instruct the amp engine to start a dataset synchronization job that will execute every time a new block (or batch of blocks) is available via the JSON-RPC interface.
There was a problem hiding this comment.
IMO, we should aim to enable the reader to use the amp_demo example project: https://github.com/edgeandnode/amp-demo
This is an example that we have tests for in the amp repo. Engineering should guarantee that it won't break (the bullet-proofing we need)
|
|
||
| --- | ||
|
|
||
| ## 7. Deploy a Dataset (Optional Example: EVM RPC) |
There was a problem hiding this comment.
See my comment about amp_demo example.