Merge branch 'feature/quollkey'
This commit is contained in:
commit
653f05c7b3
4 changed files with 343 additions and 81 deletions
|
@ -5,14 +5,17 @@ Read - Quollkey-readme first.
|
||||||
|
|
||||||
welcome.entrance.a.vue
|
welcome.entrance.a.vue
|
||||||
- shape 1 and shape 2 have been changed to act as a background for header and footer.
|
- shape 1 and shape 2 have been changed to act as a background for header and footer.
|
||||||
- Optional footer links for the landing page have been added, set via the Admin/Branding settings.
|
- optional footer links for the landing page have been added, set via the Admin/Branding settings.
|
||||||
api files changed to enable links.
|
- removed emojis, timelines, federation ticker and featured timeline.
|
||||||
- Removed emojis, timelines and other fun. Some items remain in code files, cleanup to properly remove needed.
|
|
||||||
|
Timelines
|
||||||
|
- removed 'there are new notes' from home and antenna timelines.
|
||||||
|
|
||||||
MkVisitordashboard.vue
|
MkVisitordashboard.vue
|
||||||
- changed some style elements and removed look for another instance button - it currently has no purpose.
|
- changed some style elements and removed look for another instance button - it currently has no purpose.
|
||||||
|
|
||||||
base.pug - removed splash display, cleanup needed.
|
base.pug
|
||||||
|
- removed splash screen.
|
||||||
|
|
||||||
I have reverted navbar changes for now and locked branch.
|
Navbar
|
||||||
navbar.vue - I did change it so mouseover extended the bar instead of toggle switch for desktop but it works ok as is. Might have another look one day.
|
- I have reverted navbar changes for now and locked branch.
|
||||||
|
|
91
QUOLLKEY-DOCKER-INSTALL.md
Normal file
91
QUOLLKEY-DOCKER-INSTALL.md
Normal file
|
@ -0,0 +1,91 @@
|
||||||
|
**Install at own risk**
|
||||||
|
|
||||||
|
If you intend on having a long term instance, you should setup s3 storage\
|
||||||
|
adding s3 storage to Quollkey has many advantages.
|
||||||
|
|
||||||
|
Installing Quollkey using docker
|
||||||
|
|
||||||
|
`sudo apt update && sudo apt upgrade`
|
||||||
|
|
||||||
|
- You need to have Docker and Docker Compose installed
|
||||||
|
```
|
||||||
|
# Add Docker's official GPG key:
|
||||||
|
sudo apt-get update
|
||||||
|
sudo apt-get install ca-certificates curl
|
||||||
|
sudo install -m 0755 -d /etc/apt/keyrings
|
||||||
|
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
|
||||||
|
sudo chmod a+r /etc/apt/keyrings/docker.asc
|
||||||
|
|
||||||
|
# Add the repository to Apt sources:
|
||||||
|
echo \
|
||||||
|
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
|
||||||
|
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
|
||||||
|
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
|
||||||
|
sudo apt-get update
|
||||||
|
```
|
||||||
|
|
||||||
|
- Install Docker packages\
|
||||||
|
`sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin`
|
||||||
|
|
||||||
|
- add current user to docker, if required\
|
||||||
|
`sudo usermod -aG docker ${USER}`
|
||||||
|
- switch user to register change\
|
||||||
|
`su - ${USER}`
|
||||||
|
- check status
|
||||||
|
`docker ps`
|
||||||
|
|
||||||
|
- Clone Quollkey and change to directory
|
||||||
|
```
|
||||||
|
git clone https://git.quollkey.org/Quollkey/Quollkey.git /Quollkey
|
||||||
|
cd Quollkey
|
||||||
|
git checkout main
|
||||||
|
```
|
||||||
|
|
||||||
|
- Setup config files
|
||||||
|
```
|
||||||
|
cp .config/docker_example.yml .config/default.yml
|
||||||
|
cp .config/docker_example.env .config/docker.env
|
||||||
|
cp ./compose_example.yml ./compose.yml
|
||||||
|
```
|
||||||
|
|
||||||
|
- Edit config files\
|
||||||
|
**edit the config files using your preferred editor**
|
||||||
|
```
|
||||||
|
.config/default.yml
|
||||||
|
|
||||||
|
.config/docker.env
|
||||||
|
|
||||||
|
./compose.yml
|
||||||
|
```
|
||||||
|
|
||||||
|
- Build Quollkey and build postgresql database
|
||||||
|
```
|
||||||
|
sudo docker compose build
|
||||||
|
sudo docker compose run --rm web pnpm run init
|
||||||
|
```
|
||||||
|
|
||||||
|
- Setup Nginx
|
||||||
|
Refer to Misskey instructions https://misskey-hub.net/en/docs/for-admin/install/resources/nginx/
|
||||||
|
|
||||||
|
- Start Quollkey
|
||||||
|
`sudo docker compose up -d`
|
||||||
|
Your instance should now be available at the url you provided in the config files
|
||||||
|
|
||||||
|
- Updating Quollkey
|
||||||
|
Check for any new update instructions, including any provided by Sharkey
|
||||||
|
|
||||||
|
```
|
||||||
|
git stash
|
||||||
|
|
||||||
|
git checkout master
|
||||||
|
|
||||||
|
git pull
|
||||||
|
|
||||||
|
git submodule update --init
|
||||||
|
|
||||||
|
git stash pop
|
||||||
|
|
||||||
|
sudo docker compose build
|
||||||
|
|
||||||
|
sudo docker compose stop && sudo docker compose up -d
|
||||||
|
```
|
170
QUOLLKEY-MANUAL-INSTALL.md
Normal file
170
QUOLLKEY-MANUAL-INSTALL.md
Normal file
|
@ -0,0 +1,170 @@
|
||||||
|
**Install at own risk**
|
||||||
|
|
||||||
|
If you intend on having a long term instance, you should setup s3 storage\
|
||||||
|
adding s3 storage to Quollkey has many advantages.
|
||||||
|
|
||||||
|
Manual install instructions for Quollkey
|
||||||
|
|
||||||
|
Create a user to install Quollkey\
|
||||||
|
normal sudo adduser\
|
||||||
|
or\
|
||||||
|
`adduser --disabled-password --disabled-login quollkey`
|
||||||
|
|
||||||
|
`sudo -u quollkey bash`
|
||||||
|
|
||||||
|
|
||||||
|
- Update System
|
||||||
|
`sudo apt update && sudo apt upgrade`
|
||||||
|
|
||||||
|
First, install Dependencies.
|
||||||
|
|
||||||
|
- Install Node 22.11 or later https://github.com/nvm-sh/nvm
|
||||||
|
|
||||||
|
- Install PostgreSQL
|
||||||
|
```
|
||||||
|
sudo apt install curl ca-certificates
|
||||||
|
|
||||||
|
sudo install -d /usr/share/postgresql-common/pgdg
|
||||||
|
|
||||||
|
sudo curl -o /usr/share/postgresql-common/pgdg/apt.postgresql.org.asc --fail https://www.postgresql.org/media/keys/ACCC4CF8.asc
|
||||||
|
|
||||||
|
sudo sh -c 'echo "deb [signed-by=/usr/share/postgresql-common/pgdg/apt.postgresql.org.asc] https://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
|
||||||
|
|
||||||
|
sudo apt update
|
||||||
|
|
||||||
|
sudo apt -y install postgresql-17
|
||||||
|
```
|
||||||
|
- Install redis
|
||||||
|
```
|
||||||
|
sudo apt-get install lsb-release curl gpg
|
||||||
|
|
||||||
|
curl -fsSL https://packages.redis.io/gpg | sudo gpg --dearmor -o /usr/share/keyrings/redis-archive-keyring.gpg
|
||||||
|
|
||||||
|
sudo chmod 644 /usr/share/keyrings/redis-archive-keyring.gpg
|
||||||
|
|
||||||
|
echo "deb [signed-by=/usr/share/keyrings/redis-archive-keyring.gpg] https://packages.redis.io/deb $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/redis.list
|
||||||
|
|
||||||
|
sudo apt-get update
|
||||||
|
|
||||||
|
sudo apt-get install redis
|
||||||
|
```
|
||||||
|
- Install FFmpeg
|
||||||
|
|
||||||
|
`sudo apt install ffmpeg -y`
|
||||||
|
|
||||||
|
- Build Essentials
|
||||||
|
|
||||||
|
`sudo apt install build-essential`
|
||||||
|
|
||||||
|
- Python
|
||||||
|
|
||||||
|
Python should already be installed.
|
||||||
|
|
||||||
|
- Re run system updates
|
||||||
|
`sudo apt update && sudo apt upgrade`
|
||||||
|
|
||||||
|
- Clone Branch
|
||||||
|
|
||||||
|
`git clone --recurse-submodules -b stable https://git.quollkey.org/Quollkey/Quollkey.git /Quollkey`
|
||||||
|
|
||||||
|
`cd Quollkey`
|
||||||
|
|
||||||
|
`corepack enable`
|
||||||
|
|
||||||
|
- Install
|
||||||
|
|
||||||
|
`pnpm install --frozen-lockfile`
|
||||||
|
|
||||||
|
- Create and edit default.yml
|
||||||
|
|
||||||
|
`cp .config/example.yml .config/default.yml`
|
||||||
|
|
||||||
|
Use an editor and change .config/default.yml
|
||||||
|
|
||||||
|
You will need to edit url, postgresql, admin password and other settings to suit your needs.
|
||||||
|
|
||||||
|
- Create Quollkey Database\
|
||||||
|
Change {YOUR_PASSWORD} to sameone you added to default.yml 'password'
|
||||||
|
|
||||||
|
```
|
||||||
|
sudo -u postgres psql
|
||||||
|
|
||||||
|
CREATE DATABASE quollkeydb WITH ENCODING = 'UTF8';
|
||||||
|
|
||||||
|
CREATE USER quollkey WITH ENCRYPTED PASSWORD '{YOUR_PASSWORD}';
|
||||||
|
|
||||||
|
GRANT ALL PRIVILEGES ON DATABASE quollkeydb TO quollkey;
|
||||||
|
|
||||||
|
ALTER DATABASE quollkeydb OWNER TO quollkey;
|
||||||
|
|
||||||
|
\q
|
||||||
|
```
|
||||||
|
|
||||||
|
- Build, Install and start Quollkey
|
||||||
|
|
||||||
|
`pnpm run build`
|
||||||
|
|
||||||
|
`pnpm run init`
|
||||||
|
|
||||||
|
- Nginx Setup - Refer to Misskey instructions\
|
||||||
|
https://misskey-hub.net/en/docs/for-admin/install/resources/nginx/
|
||||||
|
|
||||||
|
- To run via systemd
|
||||||
|
|
||||||
|
create quollkey.service file with your editor
|
||||||
|
|
||||||
|
/etc/systemd/system/quollkey.service
|
||||||
|
```
|
||||||
|
[Unit]
|
||||||
|
Description=Quollkey daemon
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Type=simple
|
||||||
|
User=quollkey
|
||||||
|
ExecStart=/usr/bin/pnpm start
|
||||||
|
WorkingDirectory=/home/quollkey/Quollkey
|
||||||
|
Environment="NODE_OPTIONS=--max-old-space-size=8192"
|
||||||
|
Environment="NODE_ENV=production"
|
||||||
|
TimeoutSec=60
|
||||||
|
StandardOutput=journal
|
||||||
|
StandardError=journal
|
||||||
|
SyslogIdentifier=quollkey
|
||||||
|
Restart=always
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=multi-user.target
|
||||||
|
```
|
||||||
|
|
||||||
|
If not using global node change ExecStart to\
|
||||||
|
`ExecStart=/bin/bash -c 'source /home/quollkey/.nvm/nvm.sh && /home/quollkey/.nvm/versions/node/v22.11.0/bin/pnpm start'`\
|
||||||
|
Change directory and/or node version if different
|
||||||
|
|
||||||
|
- reload daemon, enable restart and start Quollkey
|
||||||
|
```
|
||||||
|
sudo systemctl daemon-reload
|
||||||
|
|
||||||
|
sudo systemctl enable quollkey
|
||||||
|
|
||||||
|
sudo systemctl start quollkey
|
||||||
|
```
|
||||||
|
|
||||||
|
Your Quollkey instance should now be available at your url
|
||||||
|
|
||||||
|
- Updating Quollkey\
|
||||||
|
Change to the quollkey install user
|
||||||
|
|
||||||
|
```
|
||||||
|
sudo systemctl stop quollkey
|
||||||
|
|
||||||
|
cd Quollkey
|
||||||
|
|
||||||
|
git checkout stable
|
||||||
|
|
||||||
|
git pull --recurse-submodules
|
||||||
|
|
||||||
|
pnpm install --frozen-lockfile
|
||||||
|
|
||||||
|
pnpm run build
|
||||||
|
|
||||||
|
pnpm run migrate
|
||||||
|
```
|
|
@ -4,89 +4,87 @@ SPDX-License-Identifier: AGPL-3.0-only
|
||||||
-->
|
-->
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
<div v-if="meta" class="rsqzvsbo">
|
<div v-if="meta" class="rsqzvsbo">
|
||||||
<!-- Background photos, etc. -->
|
<!-- Background photos, etc. -->
|
||||||
<MkFeaturedPhotos class="bg" />
|
<MkFeaturedPhotos class="bg"/>
|
||||||
|
|
||||||
<!-- Shape1 bar at the top with instance name -->
|
|
||||||
<div v-if="instanceName" class="shape1">
|
|
||||||
<h1>{{ instanceName }}</h1>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<!-- Shape2 bar at the bottom with up to five dynamic links -->
|
|
||||||
<div class="shape2">
|
|
||||||
<!-- Link 1 -->
|
|
||||||
<a
|
|
||||||
v-if="link1Url"
|
|
||||||
:href="link1Url"
|
|
||||||
target="_blank"
|
|
||||||
rel="noopener noreferrer"
|
|
||||||
>
|
|
||||||
{{ link1Label || 'Link 1' }}
|
|
||||||
</a>
|
|
||||||
|
|
||||||
<!-- Link 2 -->
|
|
||||||
<a
|
|
||||||
v-if="link2Url"
|
|
||||||
:href="link2Url"
|
|
||||||
target="_blank"
|
|
||||||
rel="noopener noreferrer"
|
|
||||||
>
|
|
||||||
{{ link2Label || 'Link 2' }}
|
|
||||||
</a>
|
|
||||||
|
|
||||||
<!-- Link 3 -->
|
|
||||||
<a
|
|
||||||
v-if="link3Url"
|
|
||||||
:href="link3Url"
|
|
||||||
target="_blank"
|
|
||||||
rel="noopener noreferrer"
|
|
||||||
>
|
|
||||||
{{ link3Label || 'Link 3' }}
|
|
||||||
</a>
|
|
||||||
|
|
||||||
<!-- Link 4 -->
|
|
||||||
<a
|
|
||||||
v-if="link4Url"
|
|
||||||
:href="link4Url"
|
|
||||||
target="_blank"
|
|
||||||
rel="noopener noreferrer"
|
|
||||||
>
|
|
||||||
{{ link4Label || 'Link 4' }}
|
|
||||||
</a>
|
|
||||||
|
|
||||||
<!-- Link 5 -->
|
|
||||||
<a
|
|
||||||
v-if="link5Url"
|
|
||||||
:href="link5Url"
|
|
||||||
target="_blank"
|
|
||||||
rel="noopener noreferrer"
|
|
||||||
>
|
|
||||||
{{ link5Label || 'Link 5' }}
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<!-- Logo / "Powered by" section -->
|
|
||||||
<div class="logo-wrapper">
|
|
||||||
<div class="powered-by">Powered by</div>
|
|
||||||
<img :src="misskeysvg" class="misskey" />
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<!-- Main content area: visitor dashboard, etc. -->
|
|
||||||
<div class="contents">
|
|
||||||
<MkVisitorDashboard />
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
|
<!-- Shape1 bar at the top with instance name -->
|
||||||
|
<div v-if="instanceName" class="shape1">
|
||||||
|
<h1>{{ instanceName }}</h1>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<!-- Shape2 bar at the bottom with up to five dynamic links -->
|
||||||
|
<div class="shape2">
|
||||||
|
<!-- Link 1 -->
|
||||||
|
<a
|
||||||
|
v-if="link1Url"
|
||||||
|
:href="link1Url"
|
||||||
|
target="_blank"
|
||||||
|
rel="noopener noreferrer"
|
||||||
|
>
|
||||||
|
{{ link1Label || 'Link 1' }}
|
||||||
|
</a>
|
||||||
|
|
||||||
|
<!-- Link 2 -->
|
||||||
|
<a
|
||||||
|
v-if="link2Url"
|
||||||
|
:href="link2Url"
|
||||||
|
target="_blank"
|
||||||
|
rel="noopener noreferrer"
|
||||||
|
>
|
||||||
|
{{ link2Label || 'Link 2' }}
|
||||||
|
</a>
|
||||||
|
|
||||||
|
<!-- Link 3 -->
|
||||||
|
<a
|
||||||
|
v-if="link3Url"
|
||||||
|
:href="link3Url"
|
||||||
|
target="_blank"
|
||||||
|
rel="noopener noreferrer"
|
||||||
|
>
|
||||||
|
{{ link3Label || 'Link 3' }}
|
||||||
|
</a>
|
||||||
|
|
||||||
|
<!-- Link 4 -->
|
||||||
|
<a
|
||||||
|
v-if="link4Url"
|
||||||
|
:href="link4Url"
|
||||||
|
target="_blank"
|
||||||
|
rel="noopener noreferrer"
|
||||||
|
>
|
||||||
|
{{ link4Label || 'Link 4' }}
|
||||||
|
</a>
|
||||||
|
|
||||||
|
<!-- Link 5 -->
|
||||||
|
<a
|
||||||
|
v-if="link5Url"
|
||||||
|
:href="link5Url"
|
||||||
|
target="_blank"
|
||||||
|
rel="noopener noreferrer"
|
||||||
|
>
|
||||||
|
{{ link5Label || 'Link 5' }}
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Logo / "Powered by" section -->
|
||||||
|
<div class="logo-wrapper">
|
||||||
|
<div class="powered-by">Powered by</div>
|
||||||
|
<img :src="misskeysvg" class="misskey"/>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Main content area: visitor dashboard, etc. -->
|
||||||
|
<div class="contents">
|
||||||
|
<MkVisitorDashboard/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script lang="ts" setup>
|
<script lang="ts" setup>
|
||||||
|
|
||||||
import { instance } from '@/instance.js';
|
|
||||||
import { ref, onMounted } from 'vue';
|
import { ref, onMounted } from 'vue';
|
||||||
import { instanceName } from '@@/js/config.js';
|
import { instanceName } from '@@/js/config.js';
|
||||||
import * as Misskey from 'misskey-js';
|
import * as Misskey from 'misskey-js';
|
||||||
|
import { instance } from '@/instance.js';
|
||||||
import MarqueeText from '@/components/MkMarquee.vue';
|
import MarqueeText from '@/components/MkMarquee.vue';
|
||||||
import MkFeaturedPhotos from '@/components/MkFeaturedPhotos.vue';
|
import MkFeaturedPhotos from '@/components/MkFeaturedPhotos.vue';
|
||||||
import MkVisitorDashboard from '@/components/MkVisitorDashboard.vue';
|
import MkVisitorDashboard from '@/components/MkVisitorDashboard.vue';
|
||||||
|
@ -169,7 +167,7 @@ const link5Label = ref(instance.link5Label || 'Link 5');
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
margin: auto 10px auto;
|
margin: auto 10px auto;
|
||||||
font-size: 1.2rem;
|
font-size: 1.2rem;
|
||||||
color: var(--MI_THEME-panel);
|
color: var(--MI_THEME-fgOnAccent);
|
||||||
}
|
}
|
||||||
|
|
||||||
> .logo-wrapper {
|
> .logo-wrapper {
|
||||||
|
|
Loading…
Add table
Reference in a new issue