Skip to content

locvalax/opencloud

Β 
Β 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

22,999 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

OpenCloud

OpenCloud is a fork of opencloud-eu/opencloud, a cloud-native content collaboration platform.

Overview

OpenCloud provides a modern, scalable platform for file sync and share, built on top of open standards and protocols.

Prerequisites

  • Go 1.21 or later
  • Docker (for containerized development)
  • buf (for protobuf generation)
  • bingo (for Go tool management)

Getting Started

Install Development Tools

This project uses bingo to manage Go-based development tools.

# Install bingo
go install github.com/bwplotka/bingo@latest

# Install all project tools
bingo get

Build

make build

Test

make test

Run Locally (without Docker)

# Useful for quick iteration during development
make build && ./bin/opencloud server

Generate Protobuf

make generate

Project Structure

opencloud/
β”œβ”€β”€ .bingo/          # Go tool version management
β”œβ”€β”€ Makefile         # Build and development targets
└── README.md        # This file

Contributing

  1. Fork the repository
  2. Create a feature branch (git checkout -b feat/my-feature)
  3. Commit your changes following Conventional Commits
  4. Push to your branch and open a Pull Request

Backporting

This project uses automated backporting via .backportrc.json. To backport a merged PR, add the appropriate backport/<branch> label.

Personal Notes

This is my personal fork used for learning and experimentation. Changes here are not intended for upstream. See the original repo for the canonical source.

Dev tip: I run the local server with OPENCLOUD_LOG_LEVEL=debug set in my environment to get verbose output while experimenting.

Dev tip: When iterating on storage changes, I also set OPENCLOUD_STORAGE_HOME_DRIVER=ocis explicitly to avoid surprises from environment defaults on my machine.

Dev tip: I keep a local .envrc (via direnv) in the repo root with all the above vars so I don't have to set them manually each session. Add .envrc to your global gitignore to avoid accidentally committing it.

Dev tip: Running make test can be slow on the full suite. Use go test ./path/to/package/... to target just the package you're working on for faster feedback loops.

Dev tip: If the local server port conflicts with something else on my machine, set OPENCLOUD_HTTP_ADDR=0.0.0.0:9200 (or another free port) to override the default.

Dev tip: To wipe local state and start fresh (useful after storage driver experiments), remove the ~/.opencloud data directory: rm -rf ~/.opencloud. Don't do this on anything you care about keeping.

Dev tip: When debugging HTTP requests, OPENCLOUD_LOG_PRETTY=true makes the JSON log output human-readable in the terminal β€” much easier to read than minified JSON. Pair it with OPENCLOUD_LOG_LEVEL=debug for maximum verbosity.

Dev tip: For a quick sanity check that the server is up, curl -s http://localhost:9200/status returns a JSON health response without needing auth.

About

🌀️ OpenCloud is the open source platform for file management, sharing and collaboration. Simple and sovereign.

Resources

License

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages

  • Go 47.7%
  • Gherkin 36.1%
  • PHP 12.3%
  • JavaScript 1.3%
  • Starlark 1.2%
  • Shell 0.6%
  • Other 0.8%