This repository has been archived on 2024-10-24. You can view files and clone it, but cannot push or open issues or pull requests.
Go to file
2024-03-11 14:50:07 +01:00
.gitlab-ci chore(gitlab-ci): use flake.nix instead of manually constructing flake url 2023-07-15 16:24:19 +00:00
.ports chore(auth): new port offset calculation 2024-02-12 15:06:30 +00:00
app
assets
config Merge branch '139-single-sign-on-sso-routing-anpassen' into 142-userdata-oauth-mode 2024-03-11 14:50:07 +01:00
frontend/src
gup
hlint
LICENSES
load attempt to fix build by removing derive Typeable (likely no effect) 2023-01-20 09:17:50 +01:00
messages Merge branch '139-single-sign-on-sso-routing-anpassen' into 142-userdata-oauth-mode 2024-03-11 14:50:07 +01:00
models chore(auth): change user identification to UserIdent for ExternalUser entries 2024-03-08 20:04:19 +01:00
nix chore(release): 27.4.56 2023-12-20 21:23:33 +00:00
resources chore: conform to reuse spec 2023-07-14 23:09:02 +00:00
src Merge branch '139-single-sign-on-sso-routing-anpassen' into 142-userdata-oauth-mode 2024-03-11 14:50:07 +01:00
templates Merge branch '139-single-sign-on-sso-routing-anpassen' into 142-userdata-oauth-mode 2024-03-11 14:50:07 +01:00
test chore(model): remigrate ExternalAuth -> ExternalUser for more general data lookup; redefine lastSync timestamp semantics contd 2024-03-01 12:03:38 +01:00
testdata
..develop.cmd
..develop.cmd.license
.babelrc
.babelrc.license
.dir-locals.el
.dir-locals.el.license
.dockerignore
.dockerignore.license
.envrc
.envrc.license
.eslintrc.json
.eslintrc.json.license
.gitignore chore(gitignore): ignore /.vscode 2023-06-02 21:03:56 +00:00
.gitignore.license
.gitlab-ci.yml chore(gitlab-ci): remove workflow rules to enable pipeline for all branches 2023-10-25 02:41:53 +00:00
.gitmodules
.gitmodules.license
.hlint.yaml
.mailmap chore: update mailmap for s.jost@frapor.de 2023-05-10 15:17:36 +00:00
.mailmap.license
.npmrc.gup
.npmrc.gup.license
.pre-commit-config.yaml
.versionrc.js
add-license-to-all.sh
build.sh chore(build): add profiling options 2023-04-19 15:57:02 +00:00
cbt.sh
CHANGELOG.md chore(release): 27.4.56 2023-12-20 21:23:33 +00:00
CHANGELOG.md.license
clean.sh
commitlint.config.js
CONTRIBUTING
CONTRIBUTING.license
Datenschutznotizen.txt
Datenschutznotizen.txt.license
db.sh
default.nix
flake.lock chore(nix): fix registry url 2023-05-22 08:08:34 +00:00
flake.lock.license chore(package.json): reintroduce is-clean check before release 2023-07-14 22:44:52 +00:00
flake.nix flake.nix: wrap stack using pkgs-recent 2023-10-04 14:48:37 +00:00
ghci.sh
haddock.sh
hlint.sh
hoogle.sh
is-clean.sh chore(is-clean.sh): fix branch check 2023-07-14 23:38:22 +00:00
jsconfig.json
jsconfig.json.license
karma.conf.js
load.sh
lpr
minio-file-uploads.md
minio-file-uploads.md.license
missing-translations.sh
new-file.sh
new-file.sh.license
nixpkgs.nix
package-lock.json chore(npm): remove oauth2-mock-server 2024-02-01 12:20:47 +01:00
package-lock.json.license chore(ci): fix 2023-04-24 14:07:32 +00:00
package.json chore(npm): remove oauth2-mock-server 2024-02-01 12:20:47 +01:00
package.json.license chore: conform to reuse spec 2023-07-14 22:59:51 +00:00
package.yaml Merge branch 'oauth2' into 142-userdata-oauth-mode 2024-01-22 10:36:43 +01:00
postcss.config.js
README.md
README.md.license
records.json
records.json.license
release.sh chore(npm): use release script for determining version tag prefix 2023-07-16 14:51:19 +00:00
routes Merge branch '139-single-sign-on-sso-routing-anpassen' into 142-userdata-oauth-mode 2024-03-11 14:50:07 +01:00
shell.nix chore(auth): new 'Account' section 2024-03-10 22:15:20 +00:00
stack-flake.yaml
stack.nix stack.nix: conform to new flake.nix stack-wrapped 2023-10-04 14:48:28 +00:00
stack.yaml feat(auth): WIP support for OAuth2 2023-12-03 03:49:20 +00:00
stack.yaml.lock feat(auth): WIP support for OAuth2 2023-12-03 03:49:20 +00:00
stack.yaml.lock.license
stackage.nix
start.sh fix(db): migration qualification block 2023-07-03 13:48:01 +00:00
test.sh
TODO.md
TODO.md.license
translate.hs attempt to fix build by removing derive Typeable (likely no effect) 2023-01-20 09:17:50 +01:00
webpack.config.js

"Quick Start" Guide

The following description applies to Ubuntu and similar debian based Linux distributions.

Prerequisites

These are the things you need to do/install before you can get started working on Uni2work.

Install german locale

You will need to install the german locale at compile time.

Install:

  • Edit /etc/locale.gen as root and uncomment/add the line de_DE.UTF-8 UTF-8
  • Save the file and run sudo locale-gen

Clone repository

Clone this repository and navigate into it

$ git clone https://gitlab.cip.ifi.lmu.de/jost/UniWorX.git && cd UniWorX

LDAP

LDAP is needed to handle logins.

Install:

sudo apt-get install slapd ldap-utils

PostgreSQL

PostgreSQL will serve as database for Uni2work.

Install:

$ sudo apt-get install postgresql

Switch to user postgres (got created during installation):

$ sudo -i -u postgres

Add new database user uniworx:

$ createuser --interactive

You'll get a prompt:

Enter name of role to add: uniworx
Shall the new role be a superuser? (y/n) y  [user must be superuser to create extensions]
Password: uniworx
...

Create database uniworx:

$ psql -c 'create database uniworx owner uniworx'
$ psql -c 'create database uniworx_test owner uniworx'

After you added the database switch back to your own user with Ctrl + D.

To properly access the database you now need to add a new linux user called uniworx. Enter "uniworx" as the password.

$ sudo adduser uniworx

Stack

Stack is a toolbox for "Haskellers" to aid in developing Haskell projects.

Install:

$ curl -sSL https://get.haskellstack.org/ | sh

Setup stack and install dependencies. This needs to be run from inside the directory you cloned this repository to:

$ stack setup

During this step or the next you might get an error that says something about missing C libraries for ldap and lber. You can install these using

$ sudo apt-get install libsasl2-dev libldap2-dev

If you get an error that says You need to install postgresql-server-dev-X.Y for building a server-side extension or libpq-dev for building a client-side application. Go ahead and install libpq-dev with

$ sudo apt-get install libpq-dev

Other packages you might need to install during this process:

$ sudo apt-get install pkg-config
$ sudo apt-get install libsodium-dev

Node & npm

Node and Npm are needed to compile the frontend.

Install:

$ curl -sL https://deb.nodesource.com/setup_12.x | sudo -E bash -
$ sudo apt-get install -y nodejs

Build the app:

$ npm run build

This might take a few minutes... if not hours... be prepared.

install yesod:

$ stack install yesod-bin --install-ghc

Add dummy data to the database

After building the app you can prepare the database and add some dummy data:

$ ./db.sh -f

Run Uni2work

$ npm run start

This will compile both frontend and backend and will start Uni2work in development mode (might take a few minutes the first time). It will keep running and will watch any file changes to automatically re-compile the application if necessary.

If you followed the steps above you should now be able to visit http://localhost:3000 and login as one of the accounts from the Development-Logins dropdown.

Troubleshooting

Please see the wiki for more infos.