diff --git a/.github/dependabot.yml b/.github/dependabot.yml
new file mode 100644
index 0000000..d17d3ec
--- /dev/null
+++ b/.github/dependabot.yml
@@ -0,0 +1,20 @@
+version: 2
+updates:
+
+- package-ecosystem: "github-actions"
+ directory: "/"
+ rebase-strategy: "disabled"
+ schedule:
+ interval: weekly
+ day: "saturday"
+ timezone: "Europe/Berlin"
+ time: "03:00"
+
+- package-ecosystem: npm
+ directory: "/"
+ rebase-strategy: "disabled"
+ schedule:
+ interval: weekly
+ day: "saturday"
+ timezone: "Europe/Berlin"
+ time: "03:00"
diff --git a/.github/workflows/test-build.yml b/.github/workflows/test-build.yml
new file mode 100644
index 0000000..383d324
--- /dev/null
+++ b/.github/workflows/test-build.yml
@@ -0,0 +1,22 @@
+name: build test CI
+
+on: push
+
+jobs:
+ build-test:
+ name: Build Test
+ runs-on: ubuntu-latest
+ steps:
+ - name: Checkout code
+ uses: actions/checkout@v4
+
+ - name: Setup Node 20
+ uses: actions/setup-node@v4
+ with:
+ node-version: '20'
+
+ - name: npm-install
+ run: npm install
+
+ - name: npm-build
+ run: npm run build
diff --git a/.github/workflows/test-lint.yml b/.github/workflows/test-lint.yml
new file mode 100644
index 0000000..d203d25
--- /dev/null
+++ b/.github/workflows/test-lint.yml
@@ -0,0 +1,22 @@
+name: lint test CI
+
+on: push
+
+jobs:
+ build-test:
+ name: Lint Test
+ runs-on: ubuntu-latest
+ steps:
+ - name: Checkout code
+ uses: actions/checkout@v4
+
+ - name: Setup Node 20
+ uses: actions/setup-node@v4
+ with:
+ node-version: '20'
+
+ - name: npm-install
+ run: npm install
+
+ - name: npm-test
+ run: npm test
diff --git a/docs/.vuepress/config.github.js b/docs/.vuepress/config.github.js
new file mode 100644
index 0000000..80ed2c0
--- /dev/null
+++ b/docs/.vuepress/config.github.js
@@ -0,0 +1,11 @@
+import { defineUserConfig } from 'vuepress'
+import meta from './config/meta'
+import theme from './config/theme'
+import plugins from './config/plugins'
+
+export default defineUserConfig({
+ base: "/IT4C.dev/",
+ ...meta,
+ theme,
+ plugins,
+})
diff --git a/docs/.vuepress/config.js b/docs/.vuepress/config.js
new file mode 100644
index 0000000..5301d24
--- /dev/null
+++ b/docs/.vuepress/config.js
@@ -0,0 +1,10 @@
+import { defineUserConfig } from 'vuepress'
+import meta from './config/meta'
+import theme from './config/theme'
+import plugins from './config/plugins'
+
+export default defineUserConfig({
+ ...meta,
+ theme,
+ plugins,
+})
diff --git a/docs/.vuepress/config/meta.js b/docs/.vuepress/config/meta.js
new file mode 100644
index 0000000..058b289
--- /dev/null
+++ b/docs/.vuepress/config/meta.js
@@ -0,0 +1,7 @@
+export default {
+ title: 'Ocelot-Social',
+ // description: 'Free and open-source social network for active citizenship.',
+ head: [
+ ['meta', {name: 'viewport', content: 'width=device-width,initial-scale=1'}]
+ ],
+}
\ No newline at end of file
diff --git a/docs/.vuepress/config/plugins.js b/docs/.vuepress/config/plugins.js
new file mode 100644
index 0000000..c4d4eae
--- /dev/null
+++ b/docs/.vuepress/config/plugins.js
@@ -0,0 +1,18 @@
+import { searchProPlugin } from 'vuepress-plugin-search-pro'
+
+export default [
+ searchProPlugin({
+ indexContent: true,
+ autoSuggestions: true,
+ customFields: [
+ {
+ getter: (page) => page.frontmatter.category,
+ formatter: "Category: $content",
+ },
+ {
+ getter: (page) => page.frontmatter.tag,
+ formatter: "Tag: $content",
+ },
+ ],
+ }),
+]
\ No newline at end of file
diff --git a/docs/.vuepress/config/theme.js b/docs/.vuepress/config/theme.js
new file mode 100644
index 0000000..535e3c8
--- /dev/null
+++ b/docs/.vuepress/config/theme.js
@@ -0,0 +1,36 @@
+import { hopeTheme } from 'vuepress-theme-hope'
+
+export default hopeTheme({
+ favicon: 'favicon.ico',
+ logo: '/logo.svg',
+ docsRepo: 'https://github.com/Ocelot-Social-Community/ocelot.social',
+ docsBranch: 'master',
+ docsDir: 'docs',
+ editLink: true,
+ lastUpdated: false,
+ contributors: false,
+ displayFooter: true,
+ print: false,
+ copyright: 'CC BY busFaktor() e.V. & Authors',
+ footer: 'Released under the MIT License.',
+ navbar: [
+ { text: 'Documentation', link: 'https://docs.ocelot.social/' },
+ { text: 'Demo', link: 'https://stage.ocelot.social/' },
+ {
+ text: 'Github',
+ link: 'https://github.com/Ocelot-Social-Community'
+ },
+ ],
+ plugins: {
+ mdEnhance: {
+ align: true,
+ demo: true,
+ imgLazyload: true,
+ imgMark: true,
+ imgSize: true,
+ sub: true,
+ sup: true,
+ vPre: true,
+ }
+ }
+})
diff --git a/docs/.vuepress/public/favicon.ico b/docs/.vuepress/public/favicon.ico
new file mode 100644
index 0000000..b535a3d
Binary files /dev/null and b/docs/.vuepress/public/favicon.ico differ
diff --git a/docs/.vuepress/public/logo-squared.svg b/docs/.vuepress/public/logo-squared.svg
new file mode 100644
index 0000000..2a926f0
--- /dev/null
+++ b/docs/.vuepress/public/logo-squared.svg
@@ -0,0 +1,65 @@
+
+
+
diff --git a/docs/.vuepress/public/logo.svg b/docs/.vuepress/public/logo.svg
new file mode 100644
index 0000000..2a926f0
--- /dev/null
+++ b/docs/.vuepress/public/logo.svg
@@ -0,0 +1,65 @@
+
+
+
diff --git a/docs/.vuepress/styles/palette.scss b/docs/.vuepress/styles/palette.scss
new file mode 100644
index 0000000..d0d6a96
--- /dev/null
+++ b/docs/.vuepress/styles/palette.scss
@@ -0,0 +1 @@
+$theme-color: #17b53f;
\ No newline at end of file
diff --git a/docs/README.md b/docs/README.md
new file mode 100644
index 0000000..29e3817
--- /dev/null
+++ b/docs/README.md
@@ -0,0 +1,13 @@
+---
+home: true
+# layout: BlogHome
+icon: home
+title: Ocelot-Social
+heroFullScreen: false
+heroImage: /logo.svg
+heroText: Free and open-source social network for active citizenship.
+tagLine:
+# actions:
+# - text: Demo
+# link: https://stage.ocelot.social/
+---
\ No newline at end of file