尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證為了賦能社群 🌱
AI 翻譯
For empowering community 🌱
取自儲存庫 README
正在載入完整 README。
檢視完整 README ↗Welcome to the Forem codebase, the platform that powers dev.to. We are so excited to have you. With your help, we can build out Forem’s usability, scalability, and stability to better serve our communities.
Forem is open source software for building communities. Communities for your peers, customers, fanbases, families, friends, and any other time and space where people need to come together to be part of a collective. See our announcement post for a high-level overview of what Forem is.
dev.to (or just DEV) is hosted by Forem. It is a community of software developers who write articles, take part in discussions, and build their professional profiles. We value supportive and constructive dialogue in the pursuit of great code and career growth for all members. The ecosystem spans from beginner to advanced developers, and all are welcome to find their place within our community. ❤️
We welcome pull requests on any issue, regardless of its current status, if it provides a fix or improvement. While we cannot guarantee that every PR will be merged, we value legitimate suggestions and contributions.
All pull requests should include appropriate tests. Our current focus is primarily on backend-related regression tests, while frontend changes may require more extensive user review.
We welcome AI-assisted pull requests but will turn away "slop"—all submissions must maintain high standards of code quality and meaningful utility.
🤖 AI Agents should check out AGENTS.md for more instructions. For specific IDEs and environments, Forem also synchronizes these rules across .cursorrules, .windsurfrules, and .github/copilot-instructions.md.
Please also check out the Contributing to Forem guide for more detailed guidelines.
This section provides a high-level quick start guide. If you're looking for a more thorough installation guide (for example with macOS), you'll want to refer to our complete Developer Documentation.
We run on a Rails backend, and we are currently transitioning to a Preact-first frontend.
Prerequisites Note: Forem now utilizes advanced AI embeddings for feed generation. You must ensure your PostgreSQL installation has the pgvector extension (version 0.8.0 or higher) installed to support HNSW indexing. This database extension is a hard requirement to migrate the database and run the app.
To install pgvector:
brew install pgvectorsudo apt install postgresql-15-pgvector (adjust 15 to match your installed PostgreSQL version), or compile from source following the pgvector installation guide.However, providing a Gemini API key (GEMINI_API_KEY) to actually generate the embeddings is completely optional; if omitted, the app will continue to function normally without semantic recommendations.
A more complete overview of our stack is available in our docs.
To launch Forem in Gitpod, please navigate to https://gitpod.io/#https://github.com/{your_github_username}/forem.
To launch Forem in Ona (formerly Gitpod), the project is fully configured for Ona development environments. Simply open the project in Ona and the environment will be automatically configured with all necessary services and dependencies.
Please see our installation guides:
Check out our dedicated docs page for more technical documentation. Please note that while the documentation is a great place to start, some parts may be out of date as the project evolves.
Forem is equipped with Kamal 2 to allow you to easily deploy the application to any cloud provider or bare metal server.
For a comprehensive guide, including cloud provider setups (AWS, DigitalOcean, Hetzner, GCP), secrets management, and Forem-specific production gotchas, see the Kamal Deployment Guide.
Before deploying, ensure you have:
proxy section.KAMAL_WEB_IP / KAMAL_JOB_IP / KAMAL_DB_IP / KAMAL_REDIS_IP: The IP addresses of your servers (default to 192.168.0.1).KAMAL_REGISTRY_PASSWORD: Access token for your Docker container registry.RAILS_MASTER_KEY: Your Rails master key.DATABASE_URL: Connection string for PostgreSQL. This is always required. If you are using the Kamal postgres accessory, set it to the accessory hostname (e.g. postgresql://postgres:password@forem-postgres:5432/forem_production).POSTGRES_PASSWORD: Root password for the PostgreSQL accessory (if using it).Run the following commands to set up and deploy the application:
# 1. Verify your configuration is valid
bundle exec kamal config
# 2. Boot accessories, build & push the docker image, and deploy the application
bundle exec kamal setup
# 3. Subsequent deploys (rolling updates)
bundle exec kamal deploy
For more options, refer to the Kamal documentation.
Forem is the open source software which powers DEV.
We welcome security research on DEV under the terms of our vulnerability disclosure policy.
Thank you to the Twemoji project for the usage of their emojis.
This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. Please see the LICENSE file in our repository for the full text.
Like many open source projects, we require that contributors provide us with a Contributor License Agreement (CLA). By submitting code to the Forem project, you are granting us a right to use that code under the terms of the CLA.
Our version of the CLA was adapted from the Microsoft Contributor License Agreement, which they generously made available to the public domain under Creative Commons CC0 1.0 Universal.
Any questions, please refer to our license FAQ doc or email [email protected].