Commit 08545061 authored by Grant's avatar Grant
Browse files

[wip]

parent cb74ea44
Loading
Loading
Loading
Loading
+19 −0
Original line number Diff line number Diff line
# Contributing

Canvas is split into a couple different pieces, that being the backend, frontend, admin frontend & shared code.

## Backend

**Location:** `/packages/server`

## Frontend

**Location:** `/packages/client`

## Admin Frontend

**Location:** `/packages/admin`

## Shared

**Location:** `/packages/lib`
+0 −0

Empty file added.

+0 −0

Empty file added.

+63 −0
Original line number Diff line number Diff line
---
title: Getting Started
---

Interested in contributing to Canvas? Great!

# Giving feedback

Feedback is greatly appreciated and can be given in many places:

- In [#canvas-meta:aftermath.gg](<(https://matrix.to/#/#canvas-meta:aftermath.gg)>) on Matrix [![Matrix](https://img.shields.io/matrix/canvas-meta%3Aaftermath.gg?style=flat&logo=matrix)](https://matrix.to/#/#canvas-meta:aftermath.gg)
- In #meta on Discord [![Discord](https://img.shields.io/discord/1139660377370665102?style=flat&logo=discord)](https://discord.gg/mEUqXZw8kR)
- In c/canvas@toast.ooo on Lemmy [![Lemmy](https://img.shields.io/lemmy/canvas%40toast.ooo?style=flat&logo=lemmy)](https://toast.ooo/c/canvas)
- By tagging @canvas@fediverse.events on Mastodon [![Mastodon Follow](https://img.shields.io/mastodon/follow/110999563613177731?domain=https%3A%2F%2Fsocial.fediverse.events&style=flat&logo=mastodon&label=follow%20%40canvas%40fediverse.events&color=healthiness)](https://social.fediverse.events/@canvas)

# Development

The project is setup as a monorepo, with the frontend, backend and admin interface all in one place.

## Prerequisites

- [Docker](https://www.docker.com/)
- [fediverse-auth](https://sc07.dev/sc07/fediverse-auth)
- git
- Nodejs (unless if nvm is installed)
- (Optional, but prefered) [nvm](https://nvm.sh) (Node Version Manager) - Manages & installs nodejs versions

## Quick start

1. `nvm use`
1. copy `packages/client/.env.example` to `packages/client/.env.local` and modify (if needed)
1. copy `packages/server/.env.example` to `packages/server/.env` and modify
1. ensure fediverse-auth is running
1. `npm install --include=dev`
1. `npm run dev:server`
1. `npm run dev:client`

## Architecture

Directory layouts and design architecture can be found here

- [packages/server](./server/architecture.md)
- [packages/client](./client/architecture.md)
- [packages/lib](./shared/architecture.md)
- [packages/admin](./admin/architecture.md)

## Building

### Quick production environment

Building is done via Docker and a quick production environment can be brought up using the `docker-compose.yml`

`docker compose up -d --build`

### Docker image

This will build a Docker image that contains the server, client & admin UI

`docker build .`

## Contributing upstream

Canvas is hosted on [the sc07 GitLab](https://sc07.dev/sc07/canvas), and at time of writing does require registrations to be manually approved. Applications should be approved within a day, but feel free to send a message in the Discord or Matrix space to ensure it gets approved.
+0 −0

Empty file added.

Loading