Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
32 changes: 32 additions & 0 deletions blueprints/fider/docker-compose.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
version: "3.8"
services:
db:
image: postgres:17
restart: unless-stopped
volumes:
- fider-postgres:/var/lib/postgresql/data
environment:
- POSTGRES_USER=fider
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
- POSTGRES_DB=fider

app:
image: getfider/fider:stable
restart: unless-stopped
ports:
Copy link

Copilot AI Feb 28, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This compose file publishes the container port using ports. Repo guidance recommends not publishing ports in templates (use expose or rely on Dokploy domain mapping) to avoid host port conflicts and unintended direct exposure. Consider removing ports here or replacing it with expose: - 3000.

Suggested change
ports:
expose:

Copilot uses AI. Check for mistakes.
- 3000
environment:
- BASE_URL=${BASE_URL}
- DATABASE_URL=postgres://fider:${POSTGRES_PASSWORD}@db:5432/fider?sslmode=disable
- JWT_SECRET=${JWT_SECRET}
- EMAIL_NOREPLY=${EMAIL_NOREPLY}
- EMAIL_SMTP_HOST=${EMAIL_SMTP_HOST}
- EMAIL_SMTP_PORT=${EMAIL_SMTP_PORT}
- EMAIL_SMTP_USERNAME=${EMAIL_SMTP_USERNAME}
- EMAIL_SMTP_PASSWORD=${EMAIL_SMTP_PASSWORD}
- EMAIL_SMTP_ENABLE_STARTTLS=${EMAIL_SMTP_ENABLE_STARTTLS}
depends_on:
- db

volumes:
fider-postgres: {}
Binary file added blueprints/fider/fider.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
27 changes: 27 additions & 0 deletions blueprints/fider/template.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
[variables]
main_domain = "${domain}"
postgres_password = "${password:16}"
Copy link

Copilot AI Feb 28, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

postgres_password is generated with the ${password:...} helper, which can include reserved URL characters (e.g., @, #). Since this value is embedded in DATABASE_URL in docker-compose, the resulting connection string can be syntactically invalid. Consider switching the DB password generator to a URL-safe helper (e.g., a hex hash) or otherwise ensure the password is percent-encoded before being placed into the URL.

Suggested change
postgres_password = "${password:16}"
postgres_password = "${uuid}"

Copilot uses AI. Check for mistakes.
jwt_secret = "${password:32}"
email_noreply = "noreply@example.com"
email_smtp_host = ""
email_smtp_port = "587"
email_smtp_username = ""
email_smtp_password = ""
email_smtp_starttls = "true"

[config]
[[config.domains]]
serviceName = "app"
port = 3000
host = "${main_domain}"

[config.env]
BASE_URL = "http://${main_domain}"
Copy link

Copilot AI Feb 28, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

BASE_URL is hardcoded to use the http:// scheme, which will cause the application to generate links (and potentially cookies) over plain HTTP, exposing credentials and JWT-based sessions to interception or tampering on the network. An attacker observing traffic when users follow these links could steal login data or hijack sessions. This should use https:// for public deployments (or at least default to HTTPS and only allow HTTP explicitly for non-production use).

Copilot uses AI. Check for mistakes.
POSTGRES_PASSWORD = "${postgres_password}"
JWT_SECRET = "${jwt_secret}"
EMAIL_NOREPLY = "${email_noreply}"
EMAIL_SMTP_HOST = "${email_smtp_host}"
EMAIL_SMTP_PORT = "${email_smtp_port}"
EMAIL_SMTP_USERNAME = "${email_smtp_username}"
EMAIL_SMTP_PASSWORD = "${email_smtp_password}"
EMAIL_SMTP_ENABLE_STARTTLS = "${email_smtp_starttls}"
53 changes: 35 additions & 18 deletions meta.json
Original file line number Diff line number Diff line change
Expand Up @@ -2276,6 +2276,23 @@
"business-finance"
]
},
{
"id": "fider",
"name": "Fider",
"version": "stable",
"description": "Fider is an open-source feedback collection platform that helps you capture, organize, and prioritize customer feedback. It provides a public feedback board where users can submit and vote on feature requests.",
"logo": "fider.png",
"links": {
"github": "https://github.com/getfider/fider",
"website": "https://fider.io/",
"docs": "https://fider.io/docs"
},
"tags": [
"feedback",
"product-management",
"self-hosted"
]
},
{
"id": "filebrowser",
"name": "File Browser",
Expand Down Expand Up @@ -5858,6 +5875,24 @@
"open-source"
]
},
{
"id": "strapi",
"name": "Strapi",
"version": "v5.33.0",
"description": "Open-source headless CMS to build powerful APIs with built-in content management.",
"logo": "strapi.svg",
"links": {
"github": "https://github.com/strapi/strapi",
"discord": "https://discord.com/invite/strapi",
"docs": "https://docs.strapi.io",
"website": "https://strapi.io"
},
"tags": [
"headless",
"cms",
"content-management"
]
},
{
"id": "streamflow",
"name": "StreamFlow",
Expand All @@ -5877,24 +5912,6 @@
"media"
]
},
{
"id": "strapi",
"name": "Strapi",
"version": "v5.33.0",
"description": "Open-source headless CMS to build powerful APIs with built-in content management.",
"logo": "strapi.svg",
"links": {
"github": "https://github.com/strapi/strapi",
"discord": "https://discord.com/invite/strapi",
"docs": "https://docs.strapi.io",
"website": "https://strapi.io"
},
"tags": [
"headless",
"cms",
"content-management"
]
},
{
"id": "supabase",
"name": "SupaBase",
Expand Down