What to expect. Read this before your first karts up.
Karts is in early access. This page says plainly what you are using, so nothing surprises you.
Where it runs
- Your environments run on one computer in Kartikey's home, not in a data centre.
- That computer has no public address. It keeps an encrypted SSH tunnel open to a rented server, which takes the HTTPS traffic for
*.karts.kartikey.fyiand passes it through the tunnel. - Kartikey runs both machines, so he can see what is on them.
Seed data or masked data
- Use made-up data: your seed script and test accounts.
- Or a masked copy of your real data.
karts db snapshotruns on your machine and swaps personal data for fakes. Only the masked file is uploaded. Check its plan with--checkfirst. - Never put raw patient, customer or personal data in Karts. Not in the seed, not in a migration, not typed into a running app.
- Put keys and passwords in
karts secret set, never inenv:, which is plain text. Secrets are stored encrypted and hidden in logs. Still use test keys: the app runs on a public link. - For sign-in, email and payments, you may need no keys at all:
fakes:gives each branch stand-ins for Google and GitHub sign-in, email APIs and Stripe. They never call the real services.
Links are public
- Every environment gets an HTTPS link like
feature-refunds-fc00.karts.kartikey.fyi. Anyone with the link can open it. There is no sign-in. - The link is not secret. It is your branch name plus four random characters, and each environment's certificate is listed in public certificate logs that anyone can search. Assume strangers can find it.
- So keep branch names free of anything private, too.
Environments are short-lived
- After 30 minutes with no request to it, no
kartscommand on it and no openkarts logsorkarts exec, an environment is deleted: its VM and its database. - Every environment is deleted 8 hours after it was created, however busy it is.
- Rows you write are not kept: the next
karts upstarts a fresh database from your seed. - A team can have 2 projects and 5 environments at once. The VM lists every limit.
No uptime promise
A power cut, a home internet outage, an update or a restart takes Karts down, sometimes without warning. Don't rely on it for a demo, a customer or anything that has to work.
Or keep it on your Mac
karts up --localruns the samekarts.ymlon your own Mac. No account, and nothing is uploaded. It needs Docker Desktop. See Local mode.- There, a repeat
karts up --localkeeps your Postgres database, so rows you add by hand stay.
Your code
karts upuploads your working tree as it is on disk: the files git tracks, plus new files git does not ignore. That is whatgit add -Awould stage. It never uploads.git/. Check that.envand other private files are in.gitignore.- Checked-out git submodules are uploaded too.
- Uploaded files stay with the project, so the next
karts upsends only what changed. They are deleted when you delete the project.
Delete everything
karts downdeletes this branch's environment: its VM and its database.karts project delete --down-alldeletes the whole project: every environment, your uploaded code, its migration claims and its template databases. Run it at the top of the repository; it asks you to type the project's name.karts logoutrevokes this computer's sign-in.- To delete your account as well, email hello@karts.kartikey.fyi.
Contact
Something broken, or a question: hello@karts.kartikey.fyi.