simple image hosting program
翻译准备中
开发工具GitHub @ericls自行安装运营者未确认
试用过了吗? 点一下就好,无需登录。
尚未收集仓库信息。
制作者的介绍仅有上面的一句话。 更多详情请阅读仓库 README。 仓库 README ↗
尚未检测到更新。GitHub 发布版本后会显示在这里。
正在加载完整 README。
查看完整 README ↗IMGDD is a simple, self-hostable image hosting program.
It powers an image hosting project that began in early 2023. After some users requested the source code, I decided to make it available following a bit of refactoring and cleanup.
As of February 2025, the project handles over 1 TB of traffic and 4.2 million requests per day. Since continued growth may force me to stop accepting new images, I open-sourced IMGDD so that anyone can run their own instance and serve their images.
replicate CLI command.canonical (proxied from the best available backend) and direct (routed through a specific backend); per-image delivery chooses the highest-priority enabled backend.@captchaProtected directive.POST /api/v1/createImages works anonymously or with per-user API keys (Authorization: Bearer …), managed from the profile page. The API is intentionally intention based (/api/v1/<intention>, always POST) rather than resource based; full docs are served at /docs/api.@isAuthenticated / @isSiteOwner directives.window.registerPlugin API lets custom JS inject content into named UI slots without rebuilding the frontend.ALLOW_UPLOAD) or new user signups (ALLOW_NEW_USER) at runtime.gql, jet, reset-db, dev-server with hot reload).If you use nix, you can just do
nix develop.
Copy the environment file and adjust if needed:
cp .env.template .env
Start local services (PostgreSQL, Redis, MinIO ancient version):
docker compose up -d
Run database migrations:
go run . migrate
Populate built-in roles:
go run . populate-built-in-roles
Create a user:
go run . create-user --email [email protected] --password yourpassword --is-site-owner
Install pre-commit hooks if you plan to contribute:
lefthook install
# Build the frontend
cd web_client && pnpm install && pnpm build && cd ..
# Start the server
go run . serve
# Start with auto-reload (requires air)
go run . dev-server
Dev commands are available when running from source:
# Regenerate GraphQL code (gqlgen)
go run . gql
# Regenerate Jet ORM code (requires running PostgreSQL)
go run . jet
# Regenerate frontend GraphQL types
cd web_client && pnpm gen
# Run migrations
go run . migrate
# Migrate to a specific version
go run . migrate --version 3
# Create a new migration file
go run . make-migration --name add_some_table
# Reset the database (dev only)
go run . reset-db
All commands accept a -c / --config flag to specify the config file path, and a --log-level flag (default: info).
See FAQ in the Wiki.