Agentero
Connect your own Agent, keep research context in a local Vault. Seamlessly migrate from Zotero, read, understand, link, and reuse your research context.
AI translation
A cheerful portfolio page you edit from your browser. One Docker container, no database.
ProductivityJavaScript · CSSGitHub @MrDDreamOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Self-hosted portfolio: your CV and projects on one cheerful page, edited from your browser. 7 themes, light and dark, French and English, 2FA admin. One Docker container, no database.
Taken from the repository README
Loading the full README.
Read the full README ↗A CV in a PDF is fine, but it doesn't show what you build. Website builders show it nicely, on someone else's servers, with their branding and their trackers.
Folichon is a single page that tells your story (who you are, what you build, where you've worked, what you know), hosted on your server. You change it from a built-in editor in your browser: no code, no rebuild, no database.
| 🧑💻 A page that looks like you | Introduction with photo, key figures, big project cards with their own colours and screenshots, small projects, experience timeline, skills and contact. |
| ✏️ Built-in editor | Every text, link, colour and image is editable from the browser, with lists you reorder, undo on delete and a guard against overwriting a newer version. |
| 🔐 Secured | Admin at a secret address, password and two-factor authentication, limited attempts, revocable sessions, strict security headers. |
| 🌗 Light and dark | Follows the system, with a switch on the page and in the editor. |
| 🎨 7 themes, your fonts | Folichon, Magazine, Terminal, Retro, Neon, Pop or Plain CV: each changes the layout, not just the colours. Pick a font for headings and body, or upload your own. |
| 📱 Mobile first | Sticky menu, compact layout, the phone's own share sheet. |
| 🔗 Share preview | Links shared on WhatsApp, LinkedIn or Discord show a card drawn like the top of your page: name, photo, headline and key figures. |
| 🌍 French and English | The page and the editor speak both. |
| 🪶 Light | One container, no database, no external resource: fonts are served by the site, images are WebP. |
Alex Martin is an invented profile used for the screenshots. Browse every theme, in light and dark, on the website.
Create a folder with this docker-compose.yml:
services:
folichon:
image: ghcr.io/mrddream/folichon:latest
container_name: folichon
restart: unless-stopped
init: true
ports:
- '3000:3000'
env_file: .env
volumes:
- ./data:/data
Next to it, a .env file only you can read (chmod 600 .env):
# Admin password: 12 characters or more recommended
ADMIN_PASSWORD=
# Secret admin address, for example /admin-7f3k9q2x
ADMIN_PATH=
# Behind a reverse proxy (Nginx Proxy Manager, Traefik, Caddy…):
# TRUST_PROXY=loopback, uniquelocal
# SITE_URL=https://example.com
Create the data folder (the container runs as user 1000) and start:
mkdir -p data && sudo chown 1000:1000 data
docker compose up -d
The site is at http://your-server:3000, the admin at http://your-server:3000/admin-7f3k9q2x. Without ADMIN_PATH, a random address is generated and printed in docker logs folichon.
To build the image yourself: clone the repository, cp .env.example .env, then docker compose up -d --build. In that case, HOST_PORT in .env sets the port on your server (3000 by default).
| Variable | Purpose | Default |
|---|---|---|
ADMIN_PASSWORD | Admin password. Without it (or if too short), the admin is disabled. | — |
ADMIN_PATH | Secret admin address. | random, kept in data/admin-path.txt |
TRUST_PROXY | Behind a reverse proxy: proxies trusted for the visitor IP, for example loopback, uniquelocal or 1. true is refused (IP spoofing). | off |
SITE_URL | Public address of the site, used for share previews (WhatsApp, LinkedIn…) and shown on the preview card. | taken from the request |
UPDATE_CHECK | Checks GitHub (at most every 12 h) whether a newer Folichon version exists, shown next to the version in the admin. false turns it off. | on |
SESSION_SECRET | Session signing key. | random, kept in data/.session-secret |
PORT | Port inside the container. | 3000 |
DATA_DIR | Data folder. | /data in Docker |
data/totp.json.data/totp.json and restart the container. A new QR code is offered.https://… link.I build *Android apps*.data/content.backup.json. If the content changed elsewhere (another tab), saving is refused instead of overwriting it.HttpOnly, SameSite=Strict sessions valid for 12 h; changing the password or the 2FA key signs everyone out, and "Déconnexion" revokes the session on the server.Content-Security-Policy, Permissions-Policy, Cross-Origin-Opener-Policy, X-Content-Type-Options, Strict-Transport-Security (over HTTPS) headers, noindex on the admin.Found a vulnerability? See SECURITY.md.
npm install
ADMIN_PASSWORD=test-password ADMIN_PATH=/admin npm run dev
npm run check # Prettier, ESLint and tests
MIT. The fonts (Inter, Bricolage Grotesque, JetBrains Mono) are under the SIL Open Font License: see public/fonts/ and src/share-card/.