SSO service written in SvelteKit (OAuth2 / OIDC)
https://secure.icynet.eu
.vscode | ||
migrations | ||
private | ||
src | ||
static | ||
uploads | ||
.dockerignore | ||
.env.example | ||
.eslintignore | ||
.eslintrc.cjs | ||
.gitignore | ||
.npmrc | ||
.prettierignore | ||
.prettierrc | ||
Dockerfile | ||
drizzle.config.ts | ||
package-lock.json | ||
package.json | ||
README.md | ||
svelte.config.js | ||
tsconfig.json | ||
vite.config.ts |
sso-core
This is a SvelteKit-powered authentication service.
Requirements
- A MySQL or MariaDB database.
- Node.js 20+ or Docker.
Set up
- Clone the repository.
- Install dependenices -
npm install
. - Configure the environment -
cp .env.example .env
. - Generate secrets and stuff:
- Session secret -
node -e 'console.log(require("crypto").randomBytes(16).toString("hex"))'
. - Challenge secret -
node -e 'console.log(require("crypto").randomBytes(32).toString("hex"))'
. - Generate JWT keys in the
private
directory -openssl genpkey -out jwt.private.pem -algorithm RSA -pkeyopt rsa_keygen_bits:2048
. - Also make the public key -
openssl rsa -in jwt.private.pem -pubout -outform PEM -out jwt.public.pem
.
- Session secret -
- Build the application -
npm run build
. - Run the application -
node -r dotenv/config build
.