The project may look complex at first, but it's not. You can try to understand how the project works, then you can contribute by adding new features, refactoring code architecture to match standards or fixing issues.
- You can refactor the frontend design to make it simpler and easier to use.
- You can help by creating more documentations for the project.
- It's hard to write tests for a project like that, because it uses filesystem and we need to generate example files etc to test the general functionality. Because of that for now folderhost does not have tests yet. It would be nice to help us or give an idea about how we can start to creating a tests. If you have a good idea we're ready!
- Project still does not have automatic CI. You can help to integrate it after setting tests!
- You can contribute for the Services feature.
- You can add comments to explain the code better!
- And much more.
- Go language
- Git
- Node.js
- IDE / Code editor like VS Code
- MinGW / GCC compiler for the some go libraries. It depends on what OS you're using, usually some linux distros have it built-in. If you're on Linux make sure to use MinGW to create windows builds. Otherwise you can't create Windows builds.
- Make to use Makefile (Recommended)
- Docker (Optional)
- Create a fork on GitHub.
- Clone the repository to your computer:
git clone https://github.com/YOUR-USERNAME/folderhost.git
cd folderhost- Install the dependencies:
# Using Makefile (Recommended)
make setup# Or install them manually
go mod tidy
go mod download
cd web && npm install
cd ..- Start the servers:
# Frontend
cd web && npm run dev# Main server
go run main.go# Docker example
docker compose build
docker compose up- Open your browser
- Frontend: http://localhost:5173
- Main Server: http://localhost:5000
While comprehensive testing is challenging due to filesystem dependencies, we welcome:
- Unit tests for utility functions
- Mock-based tests for filesystem operations
- Integration test ideas and proposals
- Test infrastructure setup help
Try to use Conventional Commits as much as possible.
- Automatically generating CHANGELOGs.
- Automatically determining a semantic version bump (based on the types of commits landed).
- Communicating the nature of changes to teammates, the public, and other stakeholders.
- Triggering build and publish processes.
- Making it easier for people to contribute to your projects, by allowing them to explore a more structured commit history.
feat: add file upload servicefix: resolve memory leak in file handlerdocs: update API documentationrefactor: frontend designchore: add comments