Help Center

Frequently Asked Questions

Everything you need to know about Grapthway VPS β€” from getting started to billing, tokens, and advanced networking.

14Topics
111Questions
2026-05-21Updated

Getting Started

5 questions

Grapthway is a developer-first Virtual Private Server (VPS) platform built on a decentralized agent network. Instead of a traditional centralised data center, your VPS runs on physical nodes operated by independent node operators who register with the Grapthway network. You get root SSH access, a public IPv4, configurable port ranges, and full control over your server β€” billed by the month and paid with on-chain tokens.

#overview#platform

Visit the Register page and sign up with your email address and password. After verifying your email you will be redirected to the dashboard. From there you need to create a wallet (Wallet β†’ Create) before deploying your first VPS β€” the wallet holds the tokens used to pay for subscriptions.

#account#registration

Three things:

1A verified account β€” register and confirm your email.
2A wallet β€” go to Wallet β†’ Create Wallet to generate your on-chain address.
3A funded wallet β€” deposit a supported token (e.g. IDRG, USDG) so you have enough balance to cover at least one month of the chosen tier.

Once those are ready, head to VPS β†’ Deploy and follow the four-step wizard (Tier β†’ Node β†’ Configure β†’ Confirm).

#first-steps#deploy

A tier defines the CPU sharing ratio applied to your VPS. The platform organises tiers into three classes:

Student β€” most affordable, intended for learning, experiments and personal projects (heavily shared CPU).
Shared β€” multiple shared-CPU tiers offered at different sharing ratios for general-purpose workloads.
Dedicated β€” no CPU sharing, full dedicated cores for mission-critical or latency-sensitive workloads.

The exact ratio for each tier and the resource caps (max CPU / RAM / disk) are configured by the platform and shown on the product page and at the first step of the deploy wizard. Pricing is denominated in the token of your choice and previewed before you commit.

#tiers#pricing

Available nodes depend on which operators have joined the Grapthway network. The Node step in the deploy wizard shows all active nodes with their country, city, and available slots in real time. Use the Region, Country, and City dropdowns to filter. New regions appear automatically as operators register β€” there is no fixed list.

#regions#nodes

VPS Management

10 questions

Deploying a VPS is a four-step wizard:

1Tier β€” Choose the CPU ratio tier that matches your performance and budget needs. Filter by class, ratio, or accepted currency.
2Node β€” Select the physical node (location) where your VPS will run. Filter by region, country, and city. Nodes with any resource at zero are automatically hidden.
3Configure β€” Set your CPU cores, RAM, and disk using the sliders (bounded by node capacity). Choose your billing period (1–36 months). Select your payment token. Configure your SSH port.
4Confirm β€” Review the summary, set your VPS name and root password, then click Deploy.

The system runs a pre-check before charging your wallet, then triggers the provisioning pipeline. A live log viewer shows provisioning progress.

#deploy#wizard

After provisioning completes (typically 1–3 minutes), your VPS card in the dashboard shows an SSH command:

ssh root@<node-ipv4> -p <your-ssh-port>

Use the root password you set during the deploy confirm step. You can also reset your SSH root password at any time via VPS β†’ Reset SSH Password without needing to redeploy.

#ssh#access
Provisioning β€” the deployment pipeline is still setting up your server. Wait 2–3 minutes.
Running β€” your VPS is live and accepting connections.
Stopped β€” the VPS process is halted (rare; usually a node issue). Contact support.
Error β€” a deploy, scale, or other job failed. Check the job log for details. You can retry or contact support.
Deleting β€” a deletion job is in progress and the container is being torn down.
Deleted β€” the VPS has been removed and resources released.
#status#monitoring

Yes. Open the Scale VPS modal from your VPS card. You can increase CPU, RAM, or disk independently β€” you do not have to scale all three at once. If a resource is fully exhausted on the node (no headroom), that slider is locked at your current value and shown in red, but you can still scale the other resources that have headroom. A pro-rated charge for the remaining subscription days is deducted from your wallet at the time of scaling.

#scale#upgrade#resources

Yes via Downscale VPS. You can independently reduce CPU, RAM, or disk. Downscaling is free β€” no additional charge is made. The new lower spec takes effect once the job completes. Note: disk reductions require the OS to release that space first; make sure your data fits the new size before downscaling disk.

#downscale#reduce

Yes. The VPS card shows live CPU and memory usage fetched from the node agent. Click into your VPS details to see a panel with CPU percentage, memory usage, and disk info. Monitoring is available for running VPS instances only β€” stopped or provisioning VPS do not expose live stats.

#monitoring#metrics

From the VPS card click Delete. A confirmation modal will appear. Once confirmed, the platform sends a termination job to the node agent, which removes the container and releases all resources. Remaining subscription days are not refunded β€” deletion is permanent. Make sure you have backed up any data you need before deleting.

#delete#terminate

Go to your VPS card β†’ Reset SSH Password. Enter and confirm your new password (minimum 8 characters). The platform sends a secure password-reset job to the node agent. The new password is effective as soon as the job completes (usually under 30 seconds). You do not need to redeploy your VPS.

#password#ssh#security

Every background operation (deploy, scale, delete, password reset) creates a Job. You can view all your jobs and their detailed log output at Jobs in the sidebar. Log lines from both stdout and stderr are streamed in real time while the job is running. Failed jobs show the error output in red to help you diagnose what went wrong.

#logs#jobs#debugging

Folder Management is a built-in Finder/Explorer for your VPS filesystem β€” no SSH required. Open it from VPS β†’ Folder Management (or the Files entry in the VPS menu) and pick a running VPS.

What you can do:

1Browse the directory tree and open text files to edit them inline (binary files are protected with a safe fallback).
2Run the full file op set from the toolbar β€” upload, download, new file, new folder, rename, move, copy, cut/paste, and delete.
3Copy/Cut sets a clipboard; Paste drops it into the current folder (recursive paste into itself is blocked).

Good to know:

Your work lives in the persistent /projects workspace, which survives restarts, scaling, and migration β€” it is the same place the AI Agent builds, so you can inspect or tweak its files here.
Protected system roots cannot be deleted, and uploads are capped at 25 MB per file.

The page also has an in-app "How it works" explainer with these details.

#files#folder-management#filesystem#editor#projects

Networking & Ports

5 questions

During deployment you choose an SSH host port (1024–65535). The platform checks it live against all occupied ports and port ranges already allocated on that node. If the port is taken, a red indicator appears and you must choose another. This avoids conflicts between VPS instances sharing the same physical node IP.

#ssh#ports#networking

Port ranges let you reserve a block of host ports that are NAT-forwarded to your VPS. Each VPS can reserve up to 1,000 ports total across multiple ranges. To configure them:

1Open your VPS card β†’ Ports tab.
2Click Add Range and specify a low and high port number.
3Click Save β€” the platform validates there are no conflicts with other VPS on the same node.

Use these ports to expose services (databases, game servers, custom APIs) through the node's public IPv4 without SSH tunnelling.

#ports#networking#nat

The platform performs a real-time conflict check before accepting any port assignment β€” both for the SSH port during deploy and for port range bookings in the Ports tab. If a conflict is detected you will see a clear error message identifying the conflicting range. Simply choose a different port or range.

#ports#conflicts

Yes. The Setup Domain modal lets you configure a subdomain (e.g. app.yourdomain.com) that proxies traffic to your VPS. Provide your domain, the internal port your service listens on, and the protocol. The platform creates a proxy rule on the node agent. You must then point your DNS A record to the node's public IPv4 address. TTL changes propagate in 5–60 minutes depending on your DNS provider.

#domain#dns#proxy

Each node has one public IPv4 address that is shared between all VPS running on it. Your VPS is differentiated by its SSH port and any reserved port ranges. If you need traffic isolation, choose a node with low active VPS count, or contact support to discuss dedicated-IP node arrangements.

#ip#networking

Billing & Subscriptions

7 questions

Grapthway uses prepaid monthly subscriptions. When you deploy a VPS you pay upfront for the number of months you selected (1 to 36). The cost is calculated as:

(CPU cores Γ— price-per-0.1-core Γ— 10) + (RAM Γ— price-per-100MB Γ— count) + (Disk GB Γ— price-per-GB)

All prices are denominated in the token you selected at deploy time. Longer subscriptions may qualify for automatic discounts shown on the pricing page.

#billing#pricing#subscription

Open your VPS card β†’ Extend Subscription. Select the number of additional months, review the total cost, and confirm. Payment is deducted immediately. Your subscription end date is pushed forward by the chosen duration. You can extend at any time β€” you do not need to wait until expiry.

#extend#subscription#renew

Yes. Each VPS subscription has its own Auto-Renewal setting that you can toggle on or off from the VPS card. When enabled, the platform automatically charges your wallet for another billing period before the current one ends. If the renewal succeeds, the VPS keeps running uninterrupted and an `auto_renewed` event is recorded. If your wallet does not have enough balance, the renewal is marked `auto_renewal_failed` and the subscription proceeds to expire normally β€” so you still get the grace period to top up and renew manually. Auto-renewal uses the same token the subscription was originally created with.

#auto-renewal#subscription#renew

When a subscription expires the VPS enters a suspended state. The VPS process on the node is halted but data is preserved for a grace period (typically 7 days). During this period you can extend the subscription to bring the VPS back online. After the grace period the VPS is permanently deleted and all data is lost. You will receive email reminders before expiry.

#expiry#suspension#data

When you scale up mid-subscription, you pay the difference in monthly cost pro-rated for the remaining days. The formula is:

pro-rated charge = (new monthly price βˆ’ old monthly price) Γ— (days remaining / 30)

This charge is shown in the Scale VPS preview before you confirm. The charge is deducted from your wallet balance in the token associated with your subscription.

#prorated#billing#scale

Yes. Discount programs are available for multi-month subscriptions. The applicable discount is shown automatically in the configurator when you select the billing period. Discounts stack with the base pricing and are applied to the total before payment. Check the product pricing page for the latest discount schedule.

#discounts#savings

The payment token is locked at deploy time and tied to the subscription record. Extension and scaling charges use the same token as the original subscription. To use a different token you would need to deploy a new VPS. This ensures consistent billing across the subscription lifetime.

#currency#token#billing

Wallet & Tokens

7 questions

The Grapthway wallet is an on-chain account address on the Grapthway Protocol network. It holds your token balances (IDRG, USDG, and others) which are used to pay for VPS subscriptions. Your wallet address is generated when you create a wallet inside the platform β€” it is unique to your account and recorded on-chain.

#wallet#on-chain

Grapthway uses native tokens pegged 1:1 to real-world currencies. The tokens currently active on the platform are:

IDRG β€” pegged to Indonesian Rupiah (IDR)
USDG β€” pegged to US Dollar (USD)

Additional currency-pegged tokens can be registered by the platform admins over time. The authoritative list of tokens you can hold and pay with is always the Wallet β†’ Overview page β€” it shows every token currently enabled for your account. Not all tokens are accepted by every tier; the deploy wizard filters tiers by the currency you want to pay in.

#tokens#currencies#IDRG#USDG

Go to Wallet β†’ Deposit. Select the token you want to deposit and the amount. Choose your preferred payment method:

QRIS β€” scan the generated QR code with your mobile banking or e-wallet app.
Virtual Account β€” transfer to the displayed bank account number.

After payment, upload your proof of payment (screenshot). An admin reviews and approves the deposit, which triggers minting of the equivalent token amount to your on-chain wallet. Approval typically takes a few minutes during business hours.

#deposit#top-up#payment

Grapthway uses a fiat-to-token bridge: real money is received through Midtrans (QRIS or Virtual Account) and an equivalent amount of on-chain tokens is minted to your wallet after verification. The approval step ensures the payment was received and the correct amount is minted. This is a safety check against failed transactions, wrong amounts, or duplicate submissions.

#deposit#approval#verification

Your wallet balance is shown in the Wallet badge in the navigation bar (top right) as well as on the Wallet page Overview tab. Balances for all held tokens are listed. The balance refreshes automatically when you navigate to the wallet page or after a transaction completes.

#balance#wallet

The Wallet page has a Transactions tab showing your complete payment history β€” deposits, VPS subscription payments, scale charges, and any refunds. Each entry shows the date, amount, token, and transaction type. You can also see a detailed view under Transactions in the sidebar which includes subscription-level billing events.

#transactions#history#billing

The Wallet page β†’ Deposits tab lists all your deposit requests with their current status:

Pending Review β€” submitted and awaiting admin review.
Approved β€” admin approved, tokens minted to your wallet.
Rejected β€” admin rejected (e.g. proof of payment unclear). You may resubmit with a clearer image.

Tap any deposit row to see details including the proof of payment you uploaded.

#deposits#status#tracking

Security

4 questions

Root access is provided for maximum flexibility. For better security we recommend:

1Create a non-root user and add it to the sudoers group after first login.
2Disable password authentication and switch to SSH key-based auth by editing /etc/ssh/sshd_config.
3Set up a firewall (ufw or iptables) to allow only necessary ports.
4Regularly update packages with apt update && apt upgrade.

Grapthway provides root access as a starting point β€” securing it further is your responsibility.

#security#ssh#root

Yes. After your first password login, add your public key to ~/.ssh/authorized_keys on the VPS. You can then disable password auth in /etc/ssh/sshd_config (set PasswordAuthentication no) and restart sshd. SSH keys are significantly more secure than passwords and immune to brute-force attacks.

#ssh#keys#authentication

All SSH sessions are encrypted in transit using standard SSH encryption (AES-256). Data at rest on the VPS disk is not encrypted by default β€” if you need at-rest encryption, you can set up LUKS or similar block-level encryption inside your VPS. The Grapthway platform itself communicates internally over encrypted channels.

#encryption#security#data
Use a strong, unique password for your Grapthway account.
Never share your wallet seed or account credentials.
Log out after using shared devices.
If you suspect unauthorised access, contact support immediately and change your password via the Forgot Password flow.
Keep your email address current so you receive security notifications.
#account#security#password

Plan Migration

13 questions

Migration moves an existing VPS onto a different plan (tier) and/or a different node, without rebuilding your server by hand. It runs in two phases: first we copy your VPS to a brand-new one on the destination while your old VPS keeps serving (zero downtime); the new VPS comes up as a fully-working preview in a ready-to-switch state. Then, when you've re-pointed DNS and verified it, you click Switch to make the new VPS authoritative after a brief final sync. You start the migration from VPS β†’ Migrate Plan and follow the four-step wizard (Destination Tier β†’ Destination Node β†’ Configure β†’ Confirm).

#migration#overview#two-phase

Phase 1 (pre-copy): when you confirm, we take a consistent snapshot of your VPS and stream it to the destination node while your old VPS keeps running and serving traffic β€” there is no downtime. The new VPS comes up live and testable but not yet authoritative. Phase 2 (Switch): after you've re-pointed DNS and verified the new VPS, you click Switch now in the VPS page and confirm. We do a brief final sync of only the data that changed since the pre-copy, then promote the new VPS to your live server. You decide exactly when the short cutover happens.

#migration#pre-copy#switch#cutover

Everything on your disk. The entire VPS filesystem β€” your files, installed packages, system configuration, and the inner Docker data directory β€” is streamed to the destination node as a verified, checksummed copy. The transfer is chunked and resumable, so a network hiccup never corrupts or loses data. Nothing is wiped: migration copies your disk, it does not reset it. At Switch, a final delta sync carries over anything that changed on the old VPS since the pre-copy.

#migration#data#disk

Yes. Your containers, images, and volumes live inside the VPS disk, so they travel with it automatically as part of the disk copy. On top of that, their records β€” repositories, container configs, and deployment history β€” are re-pointed to the new VPS and started during the pre-copy, so the preview is a complete working mirror you can test. Git tokens are stored per-account (not per-VPS), so they keep working on the new VPS with no extra steps.

#migration#containers#docker

Yes. Every port range booked on your source VPS is automatically re-booked and opened on the destination node during the pre-copy β€” there is no manual re-mapping, so your custom ports answer on the preview too. The configure step also keeps your SSH port (you can change it if it clashes with something already booked on the destination node, and the wizard checks availability live).

#migration#ports#networking

When the pre-copy finishes, your new VPS shows a ready to switch badge: it's a fully-working preview, live on its own IP and SSH, with your containers, ports and domain config already set up β€” but it is not yet your authoritative server. Test it as much as you like via its IP / SSH while your old VPS keeps serving real traffic. Important: do your real writes on the OLD VPS until you Switch. Any data you write to the preview before switching is overwritten by the final cutover sync, which copies the latest data from the old VPS.

#migration#preview#ready-to-switch#split-brain

During the pre-copy the new node already serves your domain config and HTTPS certificates, so it answers the moment DNS points at it. The one manual step left to you is updating your DNS A-record to the new node's IP before you Switch β€” until you do, visitors keep reaching the old VPS, which is fine because it serves until the moment you Switch. At Switch, the domain authority is re-pointed to the new VPS.

#migration#domains#dns

Your old VPS keeps running and fully active right up until you click Switch β€” there is no rush. Only after the cutover does it enter a 3-day fallback window, then it is removed automatically. Because migration moves your subscription to the new VPS, the old one is not meant to be extended or renewed β€” it is a temporary safety net, not a second server. Treat the new VPS as your live one and switch over when you're ready.

#migration#old-vps#fallback-window

Yes. While the new VPS is in the ready-to-switch state (before you Switch), the VPS page shows a Cancel migration button. Cancelling removes the preview VPS and refunds your migration charge; your original VPS is completely unchanged and stays fully active on its current plan. If you never switch, the migration also auto-cancels after 3 days, with the same teardown and refund.

#migration#cancel#refund

Yes β€” migration is also a chance to resize. On the Configure step you can raise or lower CPU, RAM, and disk on the destination plan, within the destination node's capacity. Disk can only shrink down to the space your data already uses: an over-shrink is rejected up front, before any charge, so your data is never at risk. The wizard shows a red floor on the disk slider when you go below the safe minimum.

#migration#resize#resources

Migration charges a discounted first month on the destination plan plus a migration fee (equal to a second discounted first month) β€” so the total due now is roughly 2Γ— the discounted first month, billed upfront when you start. The destination starts a fresh 1-month period; the source subscription's remaining time is not transferred. Global program and voucher discounts apply just like a fresh deploy. If you cancel before switching (or it auto-expires after 3 days), you are refunded. The full price breakdown is shown on the Configure and Confirm steps before you commit.

#migration#billing#pricing

Once you confirm, the pre-copy runs as a durable background job β€” you can safely close the dialog and leave. The time depends on how much data is on your disk: a near-empty VPS finishes in minutes, while a multi-GB disk takes longer. The job is resumable, so it survives interruptions, and we email you the moment the new VPS is ready to switch. Your old VPS stays usable the whole time. The Switch itself is brief β€” seconds of downtime for a low-write VPS β€” and you trigger it when you're ready.

#migration#duration#background

Your source disk is never modified β€” the copy and the final delta are read-only β€” and every failure path leaves a working VPS. If the pre-copy fails, your old VPS never went down: the half-built preview is torn down and your migration charge is refunded. If the Switch fails, your old VPS is still serving as the fallback and the Switch is retryable β€” nothing is destroyed. So your data and original VPS are always safe.

#migration#rollback#safety

Troubleshooting

6 questions

1Open Jobs in the sidebar and find the failed provisioning job.
2Read the log output β€” stderr lines (in red) usually identify the exact error.
3Common causes: node agent timeout (try redeploying on a different node), port conflict (choose a different SSH port), or disk quota exceeded on the node.
4If the error is unclear, contact support with the Job ID so the team can investigate the node-side logs.
#error#provisioning#troubleshoot
1Confirm the VPS status is Running (not Provisioning or Error).
2Verify you are using the correct node IPv4 and SSH port shown on your VPS card.
3Check your SSH port is not blocked by a local firewall on your machine.
4Make sure you are using the correct password (reset it if unsure via Reset SSH Password).
5If you set up a firewall inside the VPS (ufw/iptables) that blocks SSH β€” you may be locked out. Contact support to access the VPS console.
#ssh#connection#troubleshoot

The token payment selector highlights your balance in red when it falls below the quoted total. Deposit the required amount and wait for admin approval before retrying. Make sure you are selecting the correct token β€” e.g. if your subscription tier accepts IDR, you need an IDRG balance, not GCU.

#balance#payment#troubleshoot

Nodes with zero CPU, RAM, or disk are automatically hidden from the node selection list. If the node you prefer is not showing, it means it has no capacity for the selected tier. Options:

Choose a different node in the same region.
Choose a different tier that has capacity on that node.
Wait for capacity to free up (other subscriptions may expire or be deleted).
Contact support to request priority placement or a new node in your preferred region.
#capacity#node#troubleshoot

Deposits are reviewed by admins, typically within a few hours during business hours. If your deposit has been pending for more than 24 hours:

1Check the Wallet β†’ Deposits tab to confirm the deposit shows Pending Review status.
2Ensure you uploaded a clear proof of payment image showing the transaction amount and reference.
3Contact support with your deposit ID and the payment reference number so an admin can manually verify.
#deposit#pending#troubleshoot
1Confirm you pointed the DNS A record to the correct node IPv4 (shown on your VPS card).
2DNS propagation can take 5–60 minutes β€” use a tool like dnschecker.org to verify propagation.
3Make sure your VPS service is listening on the internal port you configured in the Setup Domain modal.
4Check that the protocol (HTTP vs HTTPS) matches. HTTPS requires a TLS certificate inside your VPS.
5Confirm the VPS is in Running state and the node agent is healthy.
#domain#dns#troubleshoot

Platform & Network

5 questions

The Grapthway Protocol is the decentralized execution substrate that the whole platform runs on. It is several things in one:

A P2P network of Grapthway nodes that route every request between services.
A durable workflow engine that runs multi-step pipelines (e.g. provision-VPS) across multiple microservices atomically, with retry and resume.
A cryptographic routing layer β€” every service registers under a developer ID and verifies inbound requests via a node signature header.
An on-chain token ledger that stores wallet balances, mints/burns deposits, and records every payment.

The web platform sends every request to a Grapthway node rather than to services directly, and node operators register their physical servers as Grapthway agents that execute provisioning and lifecycle jobs.

#protocol#decentralized#architecture

Nodes are operated by independent node operators β€” individuals or organisations that register their physical servers with Grapthway. Each operator runs the Grapthway agent software which accepts provisioning jobs from the platform. Operators are vetted before their nodes are made available to users. The platform tracks node status, resource allocation, and uptime through the node-host microservice.

#operators#nodes#infrastructure

Grapthway targets 99.9% platform (control-plane) availability. Individual node uptime depends on the node operator. Each node carries one of four statuses tracked by the platform:

Active β€” accepting new deployments and serving running VPS.
Draining β€” still serving existing VPS, but hidden from new deployments while the operator winds down.
Suspended β€” taken out of rotation by the platform (e.g. compliance or maintenance).
Offline β€” the agent has lost contact with the platform. Existing VPS may still be running locally, but no new jobs are dispatched.

Only Active nodes appear in the deploy wizard. If a node goes Offline unexpectedly, the platform monitoring system detects it and the operations team is alerted; users with affected VPS are contacted directly.

#uptime#sla#reliability

The Grapthway backend is a fleet of independent Go services that all talk to each other through the Grapthway Protocol. Roughly grouped:

Domain microservices

ms-product β€” tier classes, tier definitions, multi-currency pricing, discount programs.
ms-subscription β€” VPS subscription lifecycle (create, scale, downscale, extend, auto-renew, close).
ms-wallet β€” on-chain wallets, token balances, deposit requests, payment events.
ms-node-host β€” node registration, tier allocations, port bookings, resource accounting.
ms-container β€” Git repos, Dockerfile editor state, container lifecycle, build jobs.

Orchestration & edge

server-vps β€” orchestrates VPS operations through Grapthway pipelines; proxies commands to node agents.
server-authentication β€” user accounts, email verification, JWT sessions, admin roles.
server-agent β€” the agent software node operators run on their physical servers; executes provisioning, scaling, and lifecycle scripts.
server-deployment β€” operator tooling that ships these components to the platform VPS fleet.

Workers (background)

worker-subscription β€” expiry scanner, grace-period sweeper, auto-renewal driver.
worker-vps-jobs β€” async runner for long-running VPS jobs (deploy, scale, snapshot, etc).

All services communicate through Grapthway Protocol routing for atomic multi-step operations.

#architecture#microservices#technical

Your VPS data (files, databases, applications) lives on the physical disk of the node operator's server in the region you chose. Platform metadata (account, subscription, billing records) is stored in the Grapthway cloud database. Payment and wallet data is recorded on the Grapthway Protocol blockchain. Review our Privacy Policy for full details on data handling.

#data#storage#privacy

Account & Settings

4 questions

Use the Language toggle available on every page β€” look for the dropdown button in the top navigation bar or in the top-right corner of the page (on pages without a navbar). Click it to open the language selector and choose your preferred language. The change is applied instantly across the entire interface. If you are logged in, your preference is saved to your account and synced across devices.

#language#settings#preferences

Open the Preferences panel via the gear icon in the navbar. Toggle between Dark and Light theme. The theme is saved to your account and applied on every subsequent login.

#theme#dark mode#preferences

On the login page, click Forgot Password. Enter your registered email address and we will send a password reset link. Follow the link in the email to set a new password. The link expires after 24 hours. If you do not receive the email, check your spam folder or contact support.

#password#reset#account

For general questions, consult this FAQ first. For account-specific issues, billing disputes, or urgent technical problems:

Email: support@grapthway.com
Include your account email, a description of the problem, and any relevant Job ID, Deposit ID, or VPS name to speed up resolution.

Admin-level issues reported through the platform are handled within business hours.

#support#contact#help

Container Management

12 questions

Container Management is a built-in feature of your Grapthway VPS that lets you build and run Docker containers without leaving the platform. You can connect a Git repository (via URL or personal access token), edit a Dockerfile, auto-detect the technology stack of your project, and control the container lifecycle β€” all through the VPS dashboard. No external CI/CD pipeline is required to get a containerised application running on your server.

#container#docker#overview

Open your VPS card and navigate to the Container tab. Use the Repository section to connect your project:

1Enter the full HTTPS clone URL of your repository (e.g. https://github.com/you/project.git).
2If the repository is private, provide a Personal Access Token (PAT) in the Git Token field β€” the platform stores it encrypted using AES-256.
3Click Clone to pull the repository onto your VPS.

Once cloned, the platform auto-detects your project's stack and populates the Dockerfile editor with a sensible starting template. You can pull the latest changes at any time using the Pull button.

#git#repository#clone

Any Git provider that exposes a standard HTTPS clone URL is supported, including:

GitHub (github.com)
GitLab (gitlab.com or self-hosted)
Bitbucket (bitbucket.org)
Gitea, Forgejo, or any self-hosted Git service

For private repositories, generate a Personal Access Token (PAT) with at least read access to the repository. On GitHub this is Settings β†’ Developer Settings β†’ Personal Access Tokens. On GitLab it is User Settings β†’ Access Tokens.

#git#github#gitlab#providers

After cloning your repository, the platform scans the project files to identify the technology stack:

Node.js / Next.js β€” detected by package.json and next.config.*
Python β€” detected by requirements.txt or pyproject.toml
Go β€” detected by go.mod
Java / Spring Boot β€” detected by pom.xml or build.gradle
PHP / Laravel β€” detected by composer.json and artisan
Ruby on Rails β€” detected by Gemfile and config/application.rb
Static sites (HTML/CSS) β€” detected when none of the above are found

The detected stack is used to pre-fill the Dockerfile template with the correct base image, dependency install commands, and startup command. You can always edit the generated Dockerfile to customise build steps.

#auto-detect#stack#docker

The Dockerfile editor is an in-browser code editor embedded in the Container tab. It lets you write or modify the Dockerfile used to build your container image β€” no SSH required.

1After cloning, the editor is pre-filled with an auto-detected template for your stack.
2Edit the Dockerfile as needed β€” change the base image, add environment variables, copy files, or override the start command.
3Click Save Dockerfile to persist your changes.
4Use the Build & Run or Redeploy button to rebuild the image and restart the container with your updated Dockerfile.

Changes to the Dockerfile are applied only when you trigger a build β€” the running container is not affected until you explicitly redeploy.

#dockerfile#editor#build

Git Personal Access Tokens (PATs) are stored encrypted on the server using AES-256 encryption. The plaintext token is never written to disk β€” it is encrypted immediately after you submit the form and only decrypted in memory when a git operation (clone or pull) requires it.

The token is never exposed in the UI after saving β€” the field shows a masked placeholder.
The token is scoped to your VPS and cannot be read by other users.
If you rotate your token on the Git provider side, update it in the Container tab and click Save β€” the old encrypted value is replaced.

We recommend using tokens with the minimum required scope (read-only repository access) and setting an expiry date on the Git provider.

#git#security#token#encryption

The Container tab provides lifecycle controls for your running container:

Start β€” Starts the container if it is stopped. Uses the last built image.
Stop β€” Gracefully stops the running container. Data persisted to volumes is preserved.
Restart β€” Stops and restarts the container without rebuilding the image. Useful for applying environment variable changes.
Redeploy β€” Pulls the latest code from Git (if a repository is connected), rebuilds the Docker image using the current Dockerfile, and starts the new container. The old container is stopped before the new one starts.

All lifecycle operations are tracked as Jobs β€” you can view progress and log output in real time in the Jobs section of the sidebar.

#container#start#stop#restart#redeploy

The Container Wizard is a step-by-step guided flow that helps you set up a container from scratch without writing any configuration manually:

1Repository β€” Paste your Git clone URL and optional access token. The wizard validates connectivity.
2Stack Detection β€” The wizard clones the repository and displays the detected stack. Confirm or override the selection.
3Dockerfile β€” Review the auto-generated Dockerfile. Make any edits you need.
4Environment β€” Optionally add environment variables (e.g. DATABASE_URL, PORT) that will be injected into the container at runtime.
5Build & Run β€” The wizard triggers the Docker build, shows a live log stream, then starts the container.

You can relaunch the wizard at any time from the Container tab to reconfigure from step 1.

#wizard#container#setup

Container operations produce two types of logs:

Build logs β€” Captured during the Docker build phase (docker build). These show each Dockerfile instruction and any errors during image construction. Accessible via the Jobs section β€” each build triggers a job with a full log stream.

Runtime logs β€” The live stdout and stderr output of your running container. View these from the Container tab β†’ Logs panel. Logs are streamed in real time and auto-scroll. You can also access historical runtime logs from the Jobs section for completed run jobs.

If a build fails, the error will appear in red in the job log β€” look for the failing Dockerfile instruction or missing dependency.

#logs#container#debugging

Yes. You can create several managed container configs on the same VPS β€” for example a web app, a backend API, and a database β€” and deploy each one. They all share your VPS's CPU, RAM, and disk allocation. You still have full root SSH access too, so you can run additional containers with Docker CLI or Docker Compose; those aren't tracked by the Container Management UI.

#container#multiple#networking

Your managed containers join a shared user-defined network, so they resolve each other by container name β€” your backend connects to your database using its container name as the host (no IP addresses). This works because Docker's default "bridge" network has NO built-in DNS; a user-defined network does.

In the create/edit wizard, leave Network as "Default (managed network)" so the container joins the shared network. You can also create your own networks in the Networks tab and pick one in the wizard. If a backend can't resolve its database hostname, make sure both containers are on the same user-defined network (not the default bridge).

#container#networking#dns#database

Some values must be baked into the image when it is BUILT, not when it runs β€” the classic example is a Next.js NEXT_PUBLIC_API_BASE_URL, which gets inlined into the browser bundle at build time. Add these as Build arguments in the Docker step of the create/edit wizard (they map to docker build --build-arg). They are saved with your container config and reused on every redeploy.

Use Build arguments for build-time values and Environment variables for runtime values. For example, a frontend's public API URL is a build argument, while a backend's database connection string is a runtime environment variable.

#container#build-args#nextjs#docker

AI Agent

16 questions

The AI Agent is an autonomous assistant that builds, deploys, and maintains applications directly inside your VPS. You describe what you want in plain language and it writes the code, builds a Docker image, runs it on your server, can set up a domain, and verifies the app is live β€” like a developer teammate you can watch, steer, or stop at any time. It uses the same actions as the VPS menus (repositories, containers, deploy, networks, domains, ports), so anything it does also shows up in those menus.

#ai-agent#overview

Four steps:

1Add a Provider Key β€” open the AI Agent area β†’ Provider Keys and paste an API key from your AI provider (Anthropic, OpenAI, or Google). It is encrypted at rest and never shown again.
2Pick a VPS β€” the agent builds inside one of your running VPS instances.
3Create a Project β€” choose New (greenfield), an existing Git repo, or local-only, then pick your model and autonomy level.
4Prompt it β€” describe what you want and watch it build, deploy, and verify. You can steer it mid-run or stop it anytime.
#ai-agent#getting-started

Use a high-end (flagship) model β€” this is the single biggest factor in how well the agent performs. Recommended: Claude Opus or Sonnet (latest), GPT-5.4, Gemini 3 β€” or any newer / equivalent model.

Avoid small or older tiers (mini, nano, haiku, and similar) for full build-and-deploy work: they tend to loop, produce broken builds, or deploy the wrong thing. They are fine for tiny edits, but for end-to-end app building a stronger model writes better code, recovers from its own errors, and finishes in far fewer steps (which also keeps your provider costs down). You pick the model per project, and the agent runs on your own provider key.

#ai-agent#model#opus#sonnet#gpt#gemini

No. You can describe what you want in everyday language ("a portfolio site with a gallery and a contact form") and the agent does the engineering. To get good results without coding:

Use a high-end model (see the model recommendation).
Be specific about what you want and how it should look or behave.
Start with the Gated autonomy level so you approve each step, then switch to Auto once you trust it.
Review what it built from the Manage tab (containers, domains, etc.).
If something is off, steer it with a follow-up message instead of starting over.

If you are a software engineer, you can also point it at an existing repository, give precise technical instructions, and review its commits and Dockerfiles.

#ai-agent#vibe-coding#no-code#beginner

You are always in control:

Autonomy level β€” Gated (approve every step), Auto to staging, or Auto to production.
Kill-switch β€” stop a run instantly.
Spend cap β€” set a budget; the agent halts when it is reached.
Steering β€” send a correction to a running agent without stopping it; it keeps full context.
Resumable β€” every conversation can be resumed later with its full history.

The agent works inside your own VPS using your own provider key, which is encrypted at rest, injected only for the duration of a run, and never persisted.

#ai-agent#safety#kill-switch#spend-cap#autonomy

It can scaffold a new app or work on an existing repository, write and edit code, build Docker images and run containers, create networks, expose ports, and add domains with SSL β€” then verify the app is serving. Beyond the first build it can maintain the app: scheduled dependency updates and automatic self-heal when a deploy or run fails, all within your guardrails and spend cap. Because it uses the same platform tools as the VPS menus, its work shows up in Container Management, Domains, and the Jobs/activity views.

#ai-agent#capabilities#deploy#maintain

Yes. Just ask it in chat to run a task on a schedule β€” hourly, daily, a cron expression, or once at a specific time. For example: "every hour, scan my service logs for errors and report," nightly dependency checks, or a periodic health probe. The agent sets up the schedule, runs the task on cadence within your autonomy level and spend cap, and you can ask it to list, change, or cancel your schedules at any time.

#ai-agent#scheduling#routine#cron#automation

It depends on the provider you pick for the chat room. On the built-in Grapthway provider (the default), Grapthway bills you directly: a small platform compute fee per agent turn (iteration), plus the model tokens it uses β€” fresh input, cached prefix (which is much cheaper), and output, each priced per million tokens. If you Bring Your Own Key (BYOK), the model tokens are billed by your own provider (Anthropic/OpenAI/Google) and Grapthway only adds the per-iteration compute fee. Either way you are charged after each run settles β€” never mid-step β€” and a stronger model usually finishes in fewer turns, so it often costs less overall than a weak model that loops. Open a project's Spend & Budget tab to set limits and review your usage.

#ai-agent#billing#byok#spend-cap#grapthway

Open a project's Spend & Budget tab. You have four independent controls: (1) Spend cap β€” the total ceiling across the compute fee plus tokens; the run stops the instant its projected spend would cross it. (2) Max iterations per run β€” how many agent turns a single run may take. (3) Max tokens per run. (4) Max time per run. On top of these, a wallet ceiling always applies: a run can never spend more than your wallet balance, so you can never go negative β€” even on an uncapped or force-continued run. Billing is post-run. The same tab shows your usage per day, model, and currency, with the iteration (compute) charge listed separately from the total so you can see exactly how much your agent turns alone are costing. Tip: start with a modest spend cap and a max-iterations limit while you learn a prompt's cost, then raise them once you trust it.

#ai-agent#spend-cap#budget#wallet

Yes β€” all managed in the Agent Files tab, which has four sub-tabs: Skills, Tools, Memory, and Reference uploads.

Reference uploads (.agent-uploads): attach any file OR a whole folder (docs, images, archives like .zip/.rar, or source like .go/.js/.py) to a chat message using the attach button, the attach-folder button, drag-and-drop, or by picking an existing file or folder already on your VPS. The agent reads only what's attached to your latest message, privately β€” it is NOT posted into the conversation. Remove one with the Γ— on its chip; an uploaded item is deleted from the VPS.
Custom skills (.agent-skills): a reusable playbook you write in plain language β€” a SKILL.md in a folder. A skill can list the tools it needs (tools: [toolA, toolB]) and the agent looks those up and runs them.
Custom tools (.agent-tools): runnable code in its own folder β€” an entry script (run.js / run.py / …). A skill is the instructions; a tool is the executable. Skills and tools live in SEPARATE folders and reference each other by name, so one tool can be shared by many skills.
Memory (.memory): the agent's OWN notes β€” decisions, gotchas, and your stated preferences β€” that it fills and reuses across runs. See the dedicated memory question for how the Global β†’ Project tree works.

Auto catalog: .agent-skills, .agent-tools and .memory each keep a catalog.json the agent reads to find what you have. It fills in automatically β€” a new skill/tool folder's NAME becomes its description until you set one. To customize, edit that catalog.json (or the SKILL.md / TOOL.md) description; your edits are preserved when the catalog rebuilds. Everything lives under /projects, so it survives restart, scale, downscale, and migration. Uploads can be any size β€” streamed in chunks, with interrupted transfers cleaned up immediately.

#ai-agent#files#skills#tools#attachments#catalog

Yes. The agent keeps its own MEMORY so you don't have to repeat yourself β€” and it's organised as a Global β†’ Project tree:

GLOBAL memory (/projects/.memory) holds cross-project facts: your personality and preferences, house conventions, the wording you like, and how your backend is usually structured. These apply to every project on that VPS.
PROJECT memory (/projects/<your-project>/.memory) holds notes specific to one project. A project note OVERRIDES the global one for the same concern β€” so a per-project routing or design choice can differ from your default without losing the global preference.

The agent recalls memory before it starts (so it follows past decisions instead of contradicting them) and records new facts, gotchas, and the preferences you state as it works β€” updating a note when something changes. For example, ask once for "a shopping-list app in light-blue + white, modern but simple, Next.js, mobile + desktop" and it saves project notes like frontend-design-preference, tech-stack, and project-description; on later prompts it reuses them automatically. Memory is SHARED across all projects on that VPS, and the global catalog nests every project so one lookup sees the whole tree. You can read and edit any note from the Agent Files β†’ Memory tab; each is a small <slug>.md file, and the catalog plus a human-readable MEMORY.md index rebuild themselves whenever a note changes. (Your private code and reference uploads are never turned into memory β€” only the reusable facts and preferences.)

#ai-agent#memory#preferences#tree#global#project

Separate from your own files, the platform keeps a shared catalog of procedures the agents have figured out. When an agent hits a problem the built-in tools don't cover and works out a solution, it saves that procedure to a fast, indexed catalog β€” and future runs, across every project and user, can search it before reinventing the wheel. It is how the whole fleet gets smarter from real experience: a tricky repo-extraction or a build workaround solved once becomes instantly reusable. You don't manage this catalog yourself; it grows automatically, and the agent is encouraged to contribute whenever it learns something new. (Your private code and reference uploads are never part of it β€” only the reusable how-to.)

#ai-agent#learned-skills#catalog#experience
Be specific β€” name the stack, pages, and features (e.g. "Next.js + Tailwind, a /contact page that emails me").
Tell it the port your app listens on and your domain if you have one.
For an existing repo, add a Git Token first so it can clone and push.
Start Gated for important work; switch to Auto once you trust the results.
Always set a spend cap.
If it drifts, steer it instead of restarting β€” it keeps context.
One clear goal per prompt beats a giant wishlist; iterate step by step.
Use a high-end model β€” it is the biggest lever on quality.
#ai-agent#tips#best-practices

Yes. During a chat the agent can spawn autonomous sub-agents to run work in parallel (e.g. scan logs on a VPS while it keeps building). Before each sub-agent runs, it shows you a budget estimate and asks you to confirm the max iterations and spend cap. Every sub-agent then appears in the "Spawned agents" panel inside the chat, each with its project + chat name and live status. Expand one to watch its messages stream in real time (tool calls, results, and text) exactly like a full chat room, answer a question it asks, steer it, or β€” after it finishes β€” follow up so it continues with its context intact. If a sub-agent stops at its spend cap or iteration limit, the parent can still read its recent messages to recover what it did.

#sub-agent#spawn#orchestrate#panel#budget#steer

Hover a chat in the list to Pin it to the top or Rename it β€” this works in the AI Agent, AI Chat, and /chat rooms. The small ring in the message box is the context meter: it fills and changes colour as the model's context window is used; click it to see the exact tokens used vs the window. Long chats auto-compact automatically as they approach the limit, on every provider and model (including the managed Grapthway provider), so a room can keep going.

#pin#rename#context#compact#window

Yes β€” but only on models that support it. When you attach a file, folder or image in a chat, text and code are read by the agent through its file tools. Images and documents (pdf / docx / pptx / xlsx) are sent to the model as native attachments β€” provided the selected model is capable. Every model in the picker shows an eye icon when it accepts images and a document icon when it accepts documents; a model with neither can only read text files, not see a picture. On the API gateway the same capability is published per model on GET /v1/models as `supports_vision` and `supports_documents`. Attachment support is auto-detected from the provider catalog and can be overridden by an admin per model.

#ai#attachment#image#vision#document#pdf

AI Plans & API

9 questions

Three ways, all under the AI section in the sidebar:

AI Chat β€” a plain chat room with the models, no VPS or project required. Great for questions, drafting, and one-off tasks.
API keys β€” an OpenAI-compatible API you call from your own apps and SDKs with an sk-gw- key.
Plans & Pricing β€” buy a subscription or a top-up that funds all of the above (and the VPS AI Agent).

Everything is metered against your plan and shown on Spend & Budget. You never need a provider key of your own β€” the platform hosts the models.

#ai#overview#chat#api#plans

They share the same models and billing but suit different jobs:

AI Agent β€” an autonomous builder that runs INSIDE your VPS: it writes code, builds, deploys, and maintains apps with tools. Needs a VPS.
AI Chat β€” a plain conversational chat room (no tools, no VPS). Ask, draft, brainstorm. Your plan funds it.
API keys β€” programmatic access: call the OpenAI-compatible endpoint from your own code with an sk-gw- key. You build the app; the gateway just serves completions.

Pick AI Agent to build/run software for you, AI Chat to talk to a model in the browser, and API keys to power your own product.

#ai#agent#chat#api#difference

AI Chat (sidebar β†’ AI β†’ AI Chat) is a plain chat room with the platform models β€” no VPS or project needed. Open it, pick a model, and start chatting. Conversations are saved and lazily reloaded when you come back, so you can continue where you left off. It supports ask-and-wait prompts (the model can ask you a question mid-task and pause for your answer). Each message is metered against your AI plan first, then your wallet β€” the same meter the AI Agent uses β€” so watch your remaining budget on Spend & Budget.

#ai#chat#sandbox#history

Go to sidebar β†’ AI β†’ Plans & Pricing β†’ Plans. Two kinds:

Subscription β€” a time-boxed quota (1 day, weekly, or monthly) with rolling fair-use windows. Best for steady use. Filter by duration with the dropdown.
Top-up β€” a one-off balance you stack on top; it doesn't expire on a clock. Best for occasional or bursty use.

Each card shows the budget you'll be granted and the value (extra budget vs. what you pay). Click Buy to see a confirmation dialog with the full summary, then confirm β€” your wallet is charged and the plan activates immediately. The purchase is recorded on your Transactions page (with a PDF receipt) and you get an in-app + email confirmation.

#ai#plans#subscription#topup#buy

Plans & Pricing β†’ Model pricing lists every model active on the platform, priced in your currency (per 1M tokens) for input, cache read, cache write, and output. Click a column header to sort, and use the search box to filter models. The underlying upstream provider is intentionally not shown β€” every model is served by Grapthway. The same prices apply whether you use the model via the AI Agent, AI Chat, or the API.

#ai#pricing#models#tokens

Under AI β†’ API keys you can create sk-gw- keys that call an OpenAI-compatible endpoint β€” so any official OpenAI SDK (Python, Node/TypeScript, Go, Rust, …) works by just pointing base_url at a Grapthway node and using your key. It supports GET /models and POST /chat/completions, including streaming. The full key is shown once at creation; store it safely and revoke it anytime. Requests are funded by your AI plan, then your wallet. See the How to connect tab for copy-paste examples and the API Docs tab for the full endpoint reference.

#ai#api#openai-compatible#sk-gw#sdk

Two changes to any OpenAI-based code: set base_url to a Grapthway node (shown live on the How to connect and API Docs tabs β€” e.g. https://node.sg.01.grapthway.com/<your-prefix>/ai-gateway-service/v1) and use your sk-gw- key as the Bearer token. Then call it exactly like OpenAI: list models with GET /models, create a completion with POST /chat/completions, and set "stream": true for server-sent events. The How to connect tab has ready-made snippets for curl, Python, Node, TypeScript, React, Go, and Rust using the official OpenAI SDKs.

#ai#api#connect#base-url#streaming

No β€” max_tokens is optional (standard OpenAI behavior). If you omit it, the gateway defaults it to the model's real output cap, automatically clamped to fit the remaining context, so a long reply is never truncated by a low default and never overflows the context window. If you do set max_tokens, your value is used as-is. GET /models also returns each model's context_length and max_output_tokens (a superset of OpenAI) so you can size budgets yourself without hardcoding a per-model table. For long agent/chat conversations the platform also auto-compacts the history before it reaches the context limit.

#ai#api#max_tokens#context#auto-compact

AI Chat and API-key usage are metered against your AI plan first (subscription / top-up), then your wallet for any overflow β€” the same meter as the AI Agent. Open AI β†’ Spend & Budget to see your remaining plan balance and a detailed breakdown of what you've spent, filterable by source (AI Agent, AI Chat, API key) and, for API keys, by individual key. When plan and wallet are both exhausted, requests stop until you top up on Plans & Pricing.

#ai#billing#spend#usage#wallet

Grapthway Flow

8 questions

Grapthway Flow is an AI-driven Jira: you plan work on kanban boards (projects, backlog, sprints, stories/tasks/bugs/documentation) and AI agents build, test and ship each work-item for you. AI-Chat acts as the manager that plans each item and spawns a sub AI-Chat executor to do the work, walked across the Active-Sprint columns by a worker β€” gated exactly where you want a human in the loop.

#flow#overview

Move an item into READY FOR DEV (or click "Run with AI" on it). A per-project AI-Chat manager room plans it and spawns a sub AI-Chat executor; a worker then walks the item forward β€” building in IN DEV, validating in TESTING β€” until it reaches READY FOR SHOW for your review. You can watch, steer, or stop it at any time.

#flow#automation

The Active Sprint has seven canonical columns: READY FOR DEV, IN DEV, READY TO TEST, TESTING, READY FOR SHOW, READY FOR BUSINESS SIGN OFF (= ready to production), and ON-HOLD. The Backlog lists everything before it enters a sprint. Boards can be customized, but these ship by default.

#flow#board

Any item can have sub-tasks. A parent cannot advance to a column to the right while a sub-task is still left of READY FOR SHOW β€” so a finding can be split into a sub-task that must be resolved first. When a parent moves to READY FOR BUSINESS SIGN OFF, its sub-tasks are automatically moved there too.

#flow#gating#subtasks

Yes. Every column has a gate: auto (the worker advances it) or user (it parks until you move it). The common setup is: you drop an item into READY FOR DEV, everything runs automatically through TESTING, then it gates at READY FOR SHOW for your sign-off β€” or you can gate every step. ON-HOLD parks any item.

#flow#gating

Bind a work-item to a repository and git credential β€” the same repos the AI Agent uses (managed in ms-container) β€” or leave it as "discover" and let the worker find the right repo. The agent then clones, builds and commits with the standard platform git tools.

#flow#repository

Your Flow subscription sets how many agents can run at once (and how many projects you can have). These per-plan limits are configured by an admin (mirroring the Consumer-AI products). Agent pickup pauses automatically when a subscription lapses; in-flight runs are allowed to finish.

#flow#subscription#billing

The AI Agent is a single autonomous run that builds an app inside a VPS. Flow orchestrates a whole board of work-items β€” planning each with an AI-Chat manager and delegating to sub AI-Chat executors, then walking them across sprint columns with gating and sub-tasks. Flow is for managing ongoing delivery; the AI Agent is for one build.

#flow#ai-agent

Still have questions?

Our support team is ready to help with anything not covered here.

Contact Support