Skip to content
View in the app

A better way to browse. Learn more.

Unraid

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

[SUPPORT] Facet – Self-Hosted Site/Portfolio Builder

Featured Replies

Overview

Every side of you. Your way. Facet is a self-hosted personal profile platform. Think LinkedIn meets personal portfolio, except you hold all the cards. Create one profile, then spin up multiple views of it: send recruiters one version, conference organizers another, clients a third. No duplicating content. No platform scraping your data. No tracking. Just you, your server, your rules.

Your data lives in a single SQLite database on your box. One container, one port, one volume to back up.

What Makes Facet Different?

Most portfolio tools force you into one story. But if you're an engineer who also speaks at conferences, or a product person who also writes, or anyone who doesn't fit a single job title, Facet is built for you. One profile, many faces, each one tailored to who's looking.

Features

  • One profile, multiple views: Tailor exactly what each audience sees, down to the section and item level. Override your headline, swap accent colors, set a custom call-to-action per view.

  • Four privacy levels: Public, unlisted (share-link only), password-protected, or private. Apply per-view and per-item.

  • Share links with superpowers: Generate links that expire, cap total uses, and revoke instantly. Clean URLs, no ugly tokens, HMAC-hashed so nothing leaks.

  • Resume import and export: Upload a PDF/DOCX and AI auto-extracts your experience, skills, education, and more. Or generate a polished resume (PDF/DOCX) out of your profile.

  • GitHub import: Pull in your repos as projects, with optional AI summaries and tag suggestions.

  • AI writing assistant: 5 rewrite tones plus a critique mode, built into every text field. Bring your own key (OpenAI, Anthropic, or local Ollama). No managed credits, no quotas, keys encrypted at rest.

  • Testimonials: Collect social proof via shareable request links, with an approval workflow and optional email verification.

  • Comments & newsletter: Threaded, moderated comments per item, plus built-in newsletter lists with a compose UI. All in your database, no third parties.

  • Public REST API & webhooks: Scoped API keys (/api/v1/*) and HMAC-signed, SSRF-protected webhooks for automations.

  • Media-rich content: Images, video, full Markdown, and embeds from YouTube, Vimeo, Loom, SoundCloud, Spotify, CodePen, Figma, and more.

  • Feeds & exports: RSS for posts, iCal for talks, full JSON/YAML export for backups.

  • Security built in: AES-256-GCM encryption, bcrypt passwords, optional TOTP 2FA, deny-by-default access control, DOMPurify XSS protection.

  • Zero tracking: No analytics by default (opt-in only), no ads, no engagement metrics. Self-hosted means your data stays yours.

  • Multi-language UI: Ships in English, German, plus Elvish, Klingon, and LOLcat for fun.

Quick Start (Unraid)

Install via Community Applications: open Apps, search for "Facet", and add the container.

First login:

  • Email: [email protected] (override via the template's ADMIN_EMAILS field)

  • Password: changeme123

You'll be prompted to change the password immediately on first login. Point a reverse proxy at the single exposed port and you're live. Back up the one /data volume and you've backed up everything: database, encryption key, and uploads.

Don't want to self-host? A managed version is available at get-facet.com. Same software, hosted for you, with billing, custom domains, and managed AI credits handled.

Links

  • GitHub: https://github.com/jesposito/Facet

  • Docker Image: ghcr.io/jesposito/facet:latest

  • Documentation: https://github.com/jesposito/Facet#readme

  • Self-Hosting Guide: https://github.com/jesposito/Facet/blob/main/docs/SELF-HOSTING-GUIDE.md

  • Discord: https://discord.gg/XD8eUudnmf

Support

  • Bugs & Features: GitHub Issues

  • Community: Discord

  • Unraid Questions: Happy to help right here in this thread!


Edited by Zabbie82

Hi,

I’m trying to run Facet on Unraid (Docker) and I’m consistently running into a startup crash related to port usage.

Setup

Unraid 7.2.0

Docker image: ghcr.io/jesper/facet:latest

Network mode: bridge

Port mapping: Host 8542 → Container 8080

Reverse proxy (Cloudflare Tunnel), but the issue also happens locally

Problem

On startup, Facet crashes with:

Error: listen EADDRINUSE: address already in use 0.0.0.0:8080

This error comes from Node/SvelteKit, not Caddy.

From the logs:

Caddy starts normally and binds to port 8080

PocketBase starts normally on port 8090

The frontend (Node/SvelteKit) crashes immediately

After that, Caddy returns 502 errors because the frontend never comes up.

What seems to be happening

Unraid requires an “Internal Port” to be defined in the container template. That automatically injects:

PORT=8080

into the container environment.

Because of this:

Node/SvelteKit tries to listen on port 8080

Caddy is already listening on port 8080

This causes an immediate port conflict (EADDRINUSE)

From what I understand, Facet expects:

Caddy on 8080

Frontend on 3000

PocketBase on 8090

But the forced PORT=8080 breaks that separation. Unraid doesn’t allow removing this variable, so it’s hard to avoid.

Questions

Is the frontend meant to respect the PORT environment variable?

Is there a way to force the frontend to always bind to 3000 regardless of PORT?

Is there a recommended workaround for Unraid users, where PORT cannot be removed?

Would it make sense for Facet to ignore or unset PORT internally to avoid this conflict?

At the moment I can’t get Facet to run on Unraid without modifying internals.

Happy to provide more logs or test a fix if needed.

Thanks!

  • Author

Template fixed!

  • Author

Big update - full UI refresh and some new features :)

  • Zabbie82 changed the title to [SUPPORT] Facet – Self-Hosted Site/Portfolio Builder

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.