Snip
Our digital lab book
About
This is the monorepo for snip - our digital lab book. This repo includes the complete code for running the labbook app and the backend services.
Currently we run a public instance of snip at snip.roentgen.physik.uni-goettingen.de. Which can be used to test the application without having to install it locally.
-
Documentation (or see
docs
folder) - Changelog
Getting started
The app is designed to be self-hosted with relative ease. We prebuild the services into docker containers that can be used to run the application. We provide you a docker-compose file that contains all the services needed to run the application.
For a full guide on how to deploy snip, please visit our documentation or see the docs/deployment
folder in this repo.
Repo overview
The repo is structured into packages, apps and assets. Apps can be run and are the entry points for the application. Packages are shared code that is used by the apps and other packages. Assets are static files that are used by the apps.
apps
├── fullstack # next.js application
├── nginx # reverse proxy
├── render # render server
├── email # email server
└── socket # socket server
packages
├── auth # authentication
├── configs # configuration for eslint, typescript, etc.
├── database # database service and types
├── snips # snip types
├── scripts # scripts for the project
└── utils # utility functions
Development
We have a docker compose file that can be used to start a local development environment. This will start the frontend, all backend services and the database server locally and live mount the code into the containers.
git clone https://gitlab.gwdg.de/irp/snip.git
docker compose -f docker/docker-compose.dev.yml build
docker compose -f docker/docker-compose.dev.yml up