Bewcloud
A simpler alternative to Nextcloud and ownCloud, built with TypeScript and Deno. 🦕
Install / Use
/learn @bewcloud/BewcloudREADME
bewCloud
This is the bewCloud app built with Deno and deployed using docker compose.
If you're looking for the desktop sync app, it's at bewcloud-desktop.
If you're looking for the mobile app, it's at bewcloud-mobile.
This repo is originally maintained on GitHub, and mirrored to Codeberg (Forgejo).
Self-host it!
Or, to run on your own machine, start with these commands:
mkdir data-files data-radicale radicale-config # local directories for storing user-uploaded files, radicale data, and radicale config (these last two are necessary only if you're using CalDav/CardDav/Contacts)
Now, download/copy the following configuration files (and tweak their contents as necessary, though no changes should yield a working — but very unsafe — setup):
docker-compose.yml.env.sampleand save it as.envbewcloud.config.sample.tsand save it asbewcloud.config.tsradicale-config/configand save it asradicale-config/config(necessary only if you're using CalDav/CardDav/Contacts)
Finally, run these commands:
docker compose up -d # makes the app available at http://localhost:8000
docker compose run --rm website bash -c "cd /app && make migrate-db" # initializes/updates the database (only needs to be executed the first time and on any data updates)
[!NOTE] If you run into permission issues, you can try running
sudo chown -R 1993:1993 data-filesto fix them.
1993:1993above comes from deno's docker image where1993is the default user id in it. It might change in the future since I don't control it.
If you're interested in building/contributing (or just running the app locally), check the Development section below.
See the Community Links section for alternative ways of running bewCloud yourself.
[!IMPORTANT] Even with signups disabled (
config.auth.allowSignups=false), the first signup will work and become an admin.
Sponsors
These are the amazing entities or individuals who are sponsoring this project for this current month. If you'd like to show up here, check the GitHub Sponsors page or make a donation above $50 ($100 to show up on the website)!
<p align="center" width="100%"> <a href="https://nlnet.nl/project/bewCloud/" title="NLnet Foundation"> <img src="https://nlnet.nl/logo/banner.svg" alt="NLnet Foundation" width="256" /> </a> <a href="https://uruky.com" title="Uruky - Search privately, without ads"> <img src="https://uruky.com/public/images/logo.svg" alt="Uruky - Search privately, without ads" width="256" /> </a> </p>Development
Requirements
[!IMPORTANT] Don't forget to set up your
.envfile based on.env.sample. Don't forget to set up yourbewcloud.config.tsfile based onbewcloud.config.sample.ts.
- This was tested with
Deno's version stated in the.dvmrcfile, though other versions may work. - For the postgres dependency (used when running locally or in CI), you should have
Dockeranddocker composeinstalled.
Commands
docker compose -f docker-compose.dev.yml up # (optional) runs docker with postgres, locally
make migrate-db # runs any missing database migrations
make start # runs the app in development mode (watches for CSS file changes and recompiles the CSS)
make format # (optional) formats the code (if you're interested in contributing)
make test # (optional) runs tests (if you're interested in contributing)
make build # (optional) generates CSS for production, if you've made changes
Other less-used commands (mostly for development)
make preview # runs the app in production mode (serves the app from the built files)
make exec-db # runs psql inside the postgres container, useful for running direct development queries like `DROP DATABASE "bewcloud"; CREATE DATABASE "bewcloud";`
File/Directory Structure
- Backend routes are defined at
routes.ts - Publicly-available files are defined at
public/ - Pages are defined at
pages/. - JSX/TSX components are defined at
components/. - Cron jobs are defined at
crons/. - Reusable bits of code are defined at
lib/. - Database migrations are defined at
db-migrations/.
Deployment
Just push to the main branch.
FAQ (Frequently Asked Questions)
Check the FAQ for answers to common questions, like private calendar and file sharing, or .env-based configuration.
How does it look?
Check the website for screenshots or the YouTube channel for 1-minute demos.
Community Links
These are not officially endorsed, but are alternative ways of running bewCloud.
bewcloud-nixosby @ntninja exposes bewCloud as an easy-to-use NixOS integration as an alternative to using Docker or running the app locally.- For installation, please see the README.
bewcloud-helmby @loboda4450 exposes bewCloud as a Helm chart with support for automatic migrations and more.- For installation, please see the README
Related Skills
node-connect
350.1kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
109.9kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
Writing Hookify Rules
109.9kThis skill should be used when the user asks to "create a hookify rule", "write a hook rule", "configure hookify", "add a hookify rule", or needs guidance on hookify rule syntax and patterns.
review-duplication
100.4kUse this skill during code reviews to proactively investigate the codebase for duplicated functionality, reinvented wheels, or failure to reuse existing project best practices and shared utilities.
