Software to manage choosing projects and automatically assigning people to projects.
This software is licensed under the GNU Affero General Public License v3.0 or any later version.
- Remove/Adapt https://github.com/projektwahl/projektwahl-lit/blob/main/src/client/routes/pw-privacy.ts and https://github.com/projektwahl/projektwahl-lit/blob/main/src/client/routes/pw-imprint.ts
- Node 21 (tested version)
- npm
- Postgresql database 16.2 (tested version)
- OpenID credentials (optional)
To ensure data security you need two users to access the database. One privileged user and one unprivileged user. The privileged user is not subject to row level security and is used for e.g. triggers and the unprivileged user is subject to row level security. If you don't use two users then unprivileged clients like voters can read all users.
git clone https://github.com/projektwahl/projektwahl-lit.git
cd projektwahl-lit/
npm i
# generate tls certificate
openssl req -x509 -newkey rsa:2048 -nodes -sha256 -subj '/CN=localhost' -keyout key.pem -out cert.pem
npm run localize-build
LANGUAGE=de npm run build
sudo docker-compose up -d
psql postgres://postgres:projektwahl@localhost
CREATE ROLE projektwahl_production LOGIN PASSWORD 'projektwahl'; -- CHANGE/REMOVE THIS PASSWORD
CREATE ROLE projektwahl_production_admin IN ROLE projektwahl_production LOGIN PASSWORD 'projektwahl'; -- CHANGE/REMOVE THIS PASSWORD
CREATE DATABASE projektwahl_production OWNER projektwahl_production_admin;
exit
psql postgres://projektwahl_production_admin:projektwahl@localhost/projektwahl_production --single-transaction < src/server/setup.sql
NODE_ENV=production DATABASE_URL=postgres://projektwahl_production:projektwahl@localhost/projektwahl_production npm run setup
OPENID_URL=https://login.microsoftonline.com/tenant-id/v2.0
CLIENT_ID=client-id
openid_client_secret
login as
admin
changeme
change the password
ln -s $PWD/pre-commit .git/hooks/pre-commit
NODE_ENV=development PORT=8443 BASE_URL=https://localhost:8443 CREDENTIALS_DIRECTORY=$PWD DATABASE_HOST=localhost DATABASE_URL=postgres://projektwahl_staging:projektwahl@localhost/projektwahl_staging npm run server
See SECURITY.md
Currently https://github.com/vslavik/poedit.
This application will probably never work without JavaScript as this would require bad API design because forms are just terrible.
npx license-checker --production --summary