What do you need to run asobeast?
A single instance tracking a handful of apps runs comfortably on the smallest cloud instance most providers sell.
What one host actually carries
Memory and disk are not what runs out first. The store rate limits are, and they bind at very different points depending on which store your keywords are on. These come from a measured run against the shipped memory ceilings; see Capacity and limits.
A workload of 75,000 keyword markets with 90 days of history measured 2 GB of database and took PostgreSQL to 94 percent of its 384 MB ceiling, so plan disk from your own market count rather than from the 5 GB above once you pass a few thousand markets. The measured sizes above leave out stored search results, which take about 0.9 MB per tracked keyword market with the default retention (the top 10 for 90 days, positions 11 to 50 for 30 days).
What ships with the stack?
You install none of these separately. Compose pulls or builds all four.
Published releases replace the two built images with
ghcr.io/asobeast/asobeast-api and ghcr.io/asobeast/asobeast-web. See Run a published release.
What do you need only for development?
Working on the source needs the toolchain as well as Docker.
See Set up a development environment.
Which hosts does asobeast reach?
Every store request runs on the machine that hosts asobeast, so that machine needs outbound HTTPS to the Apple and Google endpoints. There is no asobeast cloud service in the path and no telemetry. A host behind a strict egress policy needs the Apple iTunes endpoints and the Google Play endpoints allowed. Without them imports, ranking checks and scoring jobs fail while the rest of the application keeps serving requests. Screenshot captions and icon comparisons download images from Apple’s image CDN at*.mzstatic.com. The caption read runs only when SCREENSHOT_OCR is on, while the icon comparison runs whenever a refresh records a changed icon address, because comparing the pixels is how asobeast keeps a store-side address rotation out of the change timeline.
Outbound connections to your own SMTP relay, your own webhook endpoints and the OpenAI API, or the OpenAI compatible API OPENAI_BASE_URL names, happen only when you configure those optional features.
Which ports does asobeast publish?
One. The web container publishes host port3001, mapped to its port 3000, and nothing else is reachable from outside the Docker network.
The browser reaches the API through
/api/backend/* on the web origin, which forwards to API_INTERNAL_URL. The development Compose file is different on purpose: it publishes 5433 and 6380 on 127.0.0.1 so a locally running API can reach them.
Next steps
Self host with Docker Compose
The install path for almost everyone.
Run a published release
Pinned images from GitHub Container Registry without cloning.
Deploy on Railway
The published images on Railway in one click, with no server to manage.