A simpler alternative to Nextcloud and ownCloud, built with TypeScript and Deno using Fresh. 🦕 🍋 https://bewcloud.com/
Find a file
Bruno Bernardino a788456751
Support exporting calendar events
Also update Deno and libraries
2024-03-25 15:50:15 +00:00
.github Support exporting calendar events 2024-03-25 15:50:15 +00:00
.vscode Make it public! 2024-03-16 08:40:24 +00:00
components Support exporting calendar events 2024-03-25 15:50:15 +00:00
crons Make it public! 2024-03-16 08:40:24 +00:00
db-migrations Calendar SQL and CRUD 2024-03-19 16:05:47 +00:00
islands Allow updating events 2024-03-21 16:24:59 +00:00
lib Support exporting calendar events 2024-03-25 15:50:15 +00:00
routes Support exporting calendar events 2024-03-25 15:50:15 +00:00
static Week view UI + Calendar UI tweaks 2024-03-18 08:55:21 +00:00
.dvmrc Support exporting calendar events 2024-03-25 15:50:15 +00:00
.env.sample Update .env.sample 2024-03-18 16:16:30 +08:00
.gitignore Make it public! 2024-03-16 08:40:24 +00:00
deno.json Allow searching events 2024-03-23 16:11:36 +00:00
dev.ts Make it public! 2024-03-16 08:40:24 +00:00
docker-compose.yml Make it public! 2024-03-16 08:40:24 +00:00
Dockerfile Support exporting calendar events 2024-03-25 15:50:15 +00:00
fresh.config.ts Make it public! 2024-03-16 08:40:24 +00:00
fresh.gen.ts Support exporting calendar events 2024-03-25 15:50:15 +00:00
import_map.json Support exporting calendar events 2024-03-25 15:50:15 +00:00
LICENSE Make it public! 2024-03-16 08:40:24 +00:00
main.ts Make it public! 2024-03-16 08:40:24 +00:00
main_test.ts Make it public! 2024-03-16 08:40:24 +00:00
Makefile Make it public! 2024-03-16 08:40:24 +00:00
migrate-db.ts Make it public! 2024-03-16 08:40:24 +00:00
README.md Update README.md: fixed lil typo 2024-03-17 10:44:46 +05:30
tailwind.config.ts Make it public! 2024-03-16 08:40:24 +00:00

bewCloud

This is the bewCloud app built using Fresh and deployed using docker compose.

Self-host it!

Check the Development section below.

NOTE: You don't need to have emails (Brevo) setup to have the app work. Those are only setup and used for email verification and future needs. You can simply make any user.status = 'active' and user.subscription.expires_at = new Date('2100-01-01') to "never" expire, in the database, directly.

NOTE 2: Even with signups disabled (CONFIG_ALLOW_SIGNUPS="false"), the first signup will work and become an admin.

Requirements

This was tested with Deno's version stated in the .dvmrc file, though other versions may work.

For the postgres dependency (used when running locally or in CI), you should have Docker and docker compose installed.

Don't forget to set up your .env file based on .env.sample.

Development

$ docker compose up # (optional) runs docker with postgres, locally
$ make migrate-db # runs any missing database migrations
$ make start # runs the app
$ make format # formats the code
$ make test # runs tests

Other less-used commands

$ make exec-db # runs psql inside the postgres container, useful for running direct development queries like `DROP DATABASE "bewcloud"; CREATE DATABASE "bewcloud";`
$ make build # generates all static files for production deploy

Structure

  • Routes defined at routes/.
  • Static files are defined at static/.
  • Static frontend components are defined at components/.
  • Interactive frontend components are defined at islands/.
  • 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.

Tentative Roadmap:

  • Dashboard with URLs and Notes
  • News
  • Contacts / CardDav
  • Calendar / CalDav
  • Tasks / CalDav
  • Files / WebDav
  • Notes / WebDav
  • Photos / WebDav
  • Desktop app for selective file sync (or potentially just rclone)
  • Mobile app for offline file sync
  • Add notes support for mobile app
  • Add photos/sync support for mobile client
  • Address TODO:s in code