fix build

This commit is contained in:
Akis 2022-12-31 14:14:53 +02:00
parent 7847267ec8
commit 92753b1e35
Signed by untrusted user: akis
GPG Key ID: 267BF5C6677944ED
11 changed files with 32 additions and 56 deletions

View File

@ -1 +1,8 @@
AUTH_SECRET=myauthsecret # generate with https://generate-secret.vercel.app/32 or openssl rand -hex 32 on unix-like
AUTH_SECRET=myauthsecret # generate with https://generate-secret.vercel.app/32 or openssl rand -hex 32 on unix-like
DB_URL=postgres://user:pass@localhost:5432/website
AUTH_CLIENT_ID=your-authentik-client-id
AUTH_CLIENT_SECRET=your-authentik-client-secret
AUTH_ISSUER=https://authentik-domain/application/o/app-name/
HCAPTCHA_SECRET=your-hcaptcha-secret
HCAPTCHA_SITEKEY=your-hcaptcha-sitekey
WEBHOOK=your-discord-webhook

1
.gitignore vendored
View File

@ -6,5 +6,4 @@ node_modules
.env
.env.*
!.env.example
config/config.yml
package-lock.json

View File

@ -6,8 +6,6 @@ services:
build:
context: .
dockerfile: Dockerfile
environment:
AUTH_SECRET: ${AUTH_SECRET}
ports:
- 1337:4173
volumes:

View File

@ -1,12 +0,0 @@
db:
url: "postgres://user:password@host:5432/database"
app:
auth:
clientId: "authentik-client-id"
clientSecret: "authentik-client-secret"
issuer: "https://yourdomain.com/application/o/app-name/"
hcaptcha:
secret: "your-hcaptcha-secret"
sitekey: "your-hcaptcha-sitekey"
webhook: "your-discord-webhook-url"

View File

@ -1,14 +1,14 @@
import { SvelteKitAuth } from "@auth/sveltekit"
import Authentik from '@auth/core/providers/authentik';
import config from "$lib/config";
import { env } from "$env/dynamic/private";
export const handle = SvelteKitAuth({
providers: [
//@ts-ignore
Authentik({
clientId: config.app.auth.clientId,
clientSecret: config.app.auth.clientSecret,
issuer: config.app.auth.issuer
clientId: env.AUTH_CLIENT_ID,
clientSecret: env.AUTH_CLIENT_SECRET,
issuer: env.AUTH_ISSUER
})
]
})

View File

@ -1,13 +1,14 @@
<script>
<script lang="ts">
import HCaptcha from "svelte-hcaptcha";
import { Note } from "$lib/Form";
import config from "$lib/config";
let submit = false;
const showSubmitButton = () => {
submit = !submit;
};
export let sitekey: string;
</script>
<Note
@ -15,7 +16,7 @@
icon="i-fa6-solid:circle-info"
/>
<HCaptcha
sitekey={config.app.hcaptcha.sitekey}
{sitekey}
on:success={showSubmitButton}
/>

View File

@ -56,7 +56,7 @@
<svelte:window bind:innerWidth />
<nav
class="bg-primary border-b-1 border-b-grey flex p-2 flex-col justify-between nav:(flex-row items-center)"
class="bg-primary border-b-1 border-b-solid border-b-grey flex p-2 flex-col justify-between nav:(flex-row items-center)"
>
<div class="flex flex-row items-center justify-between">
<a

View File

@ -1,24 +0,0 @@
import { parse } from "yaml";
import fs from "fs";
interface Config {
db: {
url: string;
};
app: {
auth: {
clientId: string;
clientSecret: string;
issuer: string;
}
hcaptcha: {
secret: string;
sitekey: string;
};
webhook: string;
};
}
const config: Config = parse(fs.readFileSync("./config/config.yml", "utf8"));
export default config;

View File

@ -1,8 +1,8 @@
import { Sequelize, DataTypes } from "sequelize";
import config from "$lib/config";
import consola from "consola";
import { env } from "$env/dynamic/private";
const sequelize = new Sequelize(config.db.url);
const sequelize = new Sequelize(env.DB_URL);
sequelize.define("Announcements", {
title: {

View File

@ -1,8 +1,14 @@
import type { Actions } from "./$types";
import type { Actions, PageServerLoad } from "./$types";
import { Webhook, MessageBuilder } from "discord-webhook-node";
import Joi from "joi";
import { fail } from "@sveltejs/kit";
import config from "$lib/config";
import { env } from "$env/dynamic/private";
export const load = (() => {
return {
hcaptchaSitekey: env.HCAPTCHA_SITEKEY
}
}) satisfies PageServerLoad
export const actions: Actions = {
form: async ({ request, getClientAddress, fetch }) => {
@ -27,14 +33,14 @@ export const actions: Actions = {
"Content-Type": "application/x-www-form-urlencoded"
},
body: new URLSearchParams({
secret: config.app.hcaptcha.secret,
secret: env.HCAPTCHA_SECRET,
response: String(formData.get("h-captcha-response")),
remoteip: ip
})
}).then((res) => res.json())
const hook = new Webhook(config.app.webhook);
const hook = new Webhook(env.WEBHOOK);
const data = await verify;

View File

@ -1,8 +1,9 @@
<script lang="ts">
import { Note, Captcha, Meta, TextArea } from "$lib/Form";
import type { ActionData } from "./$types";
import type { ActionData, PageServerData } from "./$types";
export let form: ActionData;
export let data: PageServerData;
</script>
<svelte:head>
@ -43,7 +44,7 @@
name="message"
placeholder="Your message"
/>
<Captcha>
<Captcha sitekey={data.hcaptchaSitekey}>
{#if form?.success}
{form.message}
{/if}