
Get started
Install Agpiko
The customer only provides what cannot be invented alone: a domain, a Node server, and an admin account.
Open the panelCLI
The easy path is one command. It downloads the signed package, checks the server, and leaves the site ready.
npx create-agpiko ./mi-sitio
It asks for domain, email, and password (or use --yes). Then: admin at /admin/login. Updates: Check → Apply.
The package is not on the public npm registry yet. Until then, from the origin tree: cd cli && npm run build && node dist/index.js create ./mi-sitio.
Easy path
Agpiko does not live inside WordPress or PHP-only hosting. It is a Node app with its own panel.
1. You have a domain (or one we give you).
2. You have a Linux VPS with Node 22.13+ (or we install it for you).
3. You run the CLI (above). Sign in at /admin/login.
4. Later versions: panel → Updates → Check → Apply.
On your PC
For trying it out. Three things cannot be skipped: Node, an admin email/password, and starting the app.
1. Install Node.js 22.13 or newer.
2. Open the package. In kernel/ copy .env.example to .env.local and set only the admin email and password.
3. Run:
npm install
npm run db:seed
npm run dev
Open the URL Next prints, then /admin/login.
On a server
The minimum the customer (or their host) must have ready beforehand:
• DNS pointing at the VPS.
• A site in the panel (CloudPanel or similar) with TLS.
• The site’s Linux user and one free port.
After that, one ops script does the rest: unpack, write .env.local, install, build, create the database, and start PM2. The panel proxy must point at that port.
If you do it by hand (no script), from kernel/:
npm install
npm run build
npm run db:seed
pm2 start ./node_modules/next/dist/bin/next --name agpiko -- start -p 3008
pm2 save
Use the same port in PM2 and in the proxy. Channel URL and public key come with installer defaults; do not invent them.
Sign in at https://your-domain/admin/login.
After that
Do not upload code by hand again.
1. Panel → Updates.
2. Check.
3. Apply.
That replaces kernel/. It keeps site/, data/, and .env.local.
What we ask and why
Domain / DNS — Yes. It is theirs. We cannot point it without access.
TLS in the panel — Yes, or the host does it. It does not live inside Agpiko.
Server with Node — Yes, or Agpiko-managed hosting. It will not run on PHP alone.
Admin email and password — Yes (or we generate it and send it).
Channel and public key — No. Fixed in the installer.
npm install / build / seed / PM2 — No. The script does them.
Edit nginx by hand — No. The panel points the proxy at the port.
Pick a port — No, if the installer picks a free one.
kernel/ site/ data/ folders — No. They come from the package. Just know site/ is your project.
Update by SFTP — Never. Use Check → Apply.
Folders (reference):
install/
kernel/ app (an update replaces it)
site/ your project (untouched)
data/ SQLite and keys (not in git)