Requirements
- Ghostable CLI installed in your app.
- A
GHOSTABLE_CI_TOKEN
(environment-scoped). Store it in your CI secrets or store in a .env file when runningvapor deploy
locally.
Deployments
Add Ghostable’svapor:deploy
command to your vapor manifest under your environment’s build steps. Be sure the GHOSTABLE_CI_TOKEN
you are using for deployment corresponds with Ghostable environment you are targeting for deployment.
vapor.yml
Variables from Vapor will be pulled down and merge with variable stored in Ghostable, then pushed back to Vapor.
Secrets
When your project’s deployment provider is set to Laravel Vapor (Project -> Settings -> General -> Deployment Provider), Ghostable exposes an additional toggle in the variable editor: Store as Vapor Secret.
As noted on in Vapor’s documentation, using secrets may result in unexpected increased AWS billing charges. Instead, we recommend you utilize environment variables and / or encrypted environment files when possible.
Encryption
Another way to stay under AWS’s 2KB environment variable size limit is to use environment file encryption. Ghostable supports this directly. Simply pass the —encrypted flag to Ghostable’s deploy:vapor command, and all non-secret environment variables will be bundled into an encrypted file that Vapor can decrypt at runtime. Ghostable automatically generates and injects the requiredLARAVEL_ENV_ENCRYPTION_KEY
into your Vapor environment, so there’s nothing additional to manage.
vapor.yml
FAQs
Do Vapor rollbacks still work as expected?
Do Vapor rollbacks still work as expected?
Yes — Vapor rollbacks continue to function normally when using Ghostable.
However, keep in mind:
- A rollback in Vapor only affects the code and deployment artifact, it does not roll back environment variables or secrets managed by Ghostable.
- Your Ghostable-managed variables will remain as-is unless you explicitly deploy a different set of variables from Ghostable.
If you need your application to match a previous state exactly, remember that
variables and secrets must be rolled back in Ghostable as well — Vapor does not
automatically sync those changes.
Does Ghostable remove secrets from Vapor when I delete?
Does Ghostable remove secrets from Vapor when I delete?
No. Ghostable only syncs and updates the secrets it manages. If you remove a variable marked as “Store as Vapor Secret”
from Ghostable, it will not automatically delete it from Vapor or AWS Secrets Manager.
Always confirm that unused secrets are removed from Vapor/AWS manually
to avoid confusion and potential security risks.
What happens if I switch between plain, encrypted, and secret variables?
What happens if I switch between plain, encrypted, and secret variables?
Ghostable keeps track of the delivery mode for each variable, but Vapor may continue
to hold previous copies depending on how you’ve deployed.
If you’re migrating a variable from plaintext → encrypted → secret (or the other way
around), do a cleanup step in Vapor to remove the old copies once you’ve confirmed
your app is reading the new source correctly.