fnox-secrets
Manages fnox encrypted secrets for the micelio project. Use when setting up secrets, adding new environment variables, configuring deployment credentials, or troubleshooting fnox/age encryption.
Installation
Follow the repository instructions for this skill and your agent. Review the files and dependencies before adding it to your workflow.
View source ↗GuidesSkill instructions
fnox Secrets Management
This project uses fnox with age encryption to manage secrets. Secrets are encrypted in the repository and can be shared between local development and CI.
Configuration
-
Config file:
fnox.tomlin the project root -
Age key location:
~/.config/fnox/micelio-age.txt -
Public key:
age147aml8dcjnfyj8gacmx8fvskkrg0gq9lfcrfvmquj28ft3rag5sqyq3nss
Current Secrets
| Secret | Purpose |
|---|---|
KAMAL_REGISTRY_PASSWORD |
Docker registry authentication |
POSTGRES_PASSWORD |
Database password |
SECRET_KEY_BASE |
Phoenix secret key |
SSH_PRIVATE_KEY |
Server SSH access for deployments |
Common Commands
# List all secrets
fnox list
# Get a secret value (decrypted)
fnox get SECRET_NAME
# Set a new secret (interactive)
fnox set SECRET_NAME
# Set a secret from stdin
echo "value" | fnox set SECRET_NAME
# Run a command with secrets in environment
fnox exec -- command
Adding a New Secret
-
Add the secret definition to
fnox.toml:NEW_SECRET = { provider = "age" } -
Set the secret value:
fnox set NEW_SECRET -
If needed in Kamal, add to
config/deploy.yml:env: secret: - NEW_SECRET -
Commit
fnox.toml(encrypted values are safe to commit)
Setting Up on a New Machine
-
Get the age private key from a secure source (password manager, team member)
-
Create the key file:
mkdir -p ~/.config/fnox # Paste the key content into this file: vim ~/.config/fnox/micelio-age.txt chmod 600 ~/.config/fnox/micelio-age.txt -
Verify access:
fnox list fnox get POSTGRES_PASSWORD
Setting Up GitHub Actions
-
Copy the age private key:
cat ~/.config/fnox/micelio-age.txt | pbcopy -
Add to GitHub:
- Go to repository Settings > Secrets and variables > Actions
- Create new secret named
FNOX_AGE_KEY - Paste the key content
Generating Secure Values
# 32-byte hex string (good for passwords)
openssl rand -hex 32
# 64-byte hex string (good for secret keys)
openssl rand -hex 64
Troubleshooting
Error: "unknown field identity"
- Use
key_fileinstead ofidentityin fnox.toml
Error: "could not decrypt"
- Verify the age key file exists at
~/.config/fnox/micelio-age.txt - Check file permissions:
chmod 600 ~/.config/fnox/micelio-age.txt - Ensure you have the correct private key for this project
Secret not available in deployment
- Verify it's listed in
config/deploy.ymlunderenv.secret - Ensure
FNOX_AGE_KEYis set in GitHub Actions secrets
Examples
Read the usage examples in the source repository.
View source ↗Source history
- Indexed on
- 2026-01-20
- Index updated
- 2026-01-26
- Branch
- main
Index and sync dates describe this directory. View the source repository for code history.
GitHub ↗chat Comments (0)
Sign in to join the discussion and leave a comment.
No comments yet. Be the first to share your thoughts!