6.9 KiB
About Puyoskey 🦈
Puyoskey is a customized version of Sharkey with specific UI modifications to enhance the user experience. Some of the key customizations include:
- Simplified instance ticker display
- Customized timeline interface
- Enhanced server metrics visualization
- Modified UI components
See the complete list of customizations in our customization documentation.
Installation Guide 💨
Install dependencies for AlmaLinux 9 Server ⛏️
Install CLI dependencies:
dnf install -y epel-release
dnf config-manager --set-enabled crb
dnf install --nogpgcheck https://mirrors.rpmfusion.org/free/el/rpmfusion-free-release-$(rpm -E %rhel).noarch.rpm -y
dnf install --nogpgcheck https://mirrors.rpmfusion.org/nonfree/el/rpmfusion-nonfree-release-$(rpm -E %rhel).noarch.rpm -y
dnf update -y
dnf install -y git make automake gcc gcc-c++ kernel-devel kernel-headers ffmpeg vim jemalloc
dnf groupinstall -y "Development Tools"
Install Node.js and pnpm:
curl -fsSL https://rpm.nodesource.com/setup_22.x | bash -
dnf install nodejs -y
corepack enable
# To type y
pnpm
Manual Installation
Create user for Puyoskey:
useradd -m -D puyoskey
Switch to created user:
sudo -iu puyoskey
Clone the Puyoskey repository, and copy the example configuration file:
git clone --recurse-submodules -b master https://git.v-sli.me/HidemaruOwO/puyoskey.git
cd puyoskey
pnpm install --frozen-lockfile
cp .config/example.yml .config/default.yml
Build Puyoskey:
pnpm run build
Database Setup (PostgreSQL)
Attach to psql:
sudo -u postgres psql
CREATE DATABASE puyoskey WITH ENCODING = 'UTF8';
CREATE USER puyoskey WITH ENCRYPTED PASSWORD '{YOUR_PASSWORD}';
GRANT ALL PRIVILEGES ON DATABASE puyoskey TO puyoskey;
ALTER DATABASE puyoskey OWNER TO puyoskey;
\q
Edit configuration file:
vim .config/default.yml
Create the schema:
pnpm run init
Start Puyoskey:
pnpm start
Run with systemd (you should change user to root)
Create a file /etc/systemd/system/puyoskey.service
containing:
[Unit]
Description=Puyoskey daemon
[Service]
Type=simple
User=puyoskey
ExecStart=/bin/pnpm start
WorkingDirectory=/home/puyoskey/puyoskey
Environment="NODE_OPTIONS=--max-old-space-size=8192"
Environment="NODE_ENV=production"
Environment="LD_PRELOAD=/usr/lib64/libjemalloc.so.2"
TimeoutSec=60
StandardOutput=journal
StandardError=journal
SyslogIdentifier=puyoskey
Restart=always
[Install]
WantedBy=multi-user.target
Enable and run daemon service:
systemctl daemon-reload
systemctl enable --now puyoskey.service
Optional: For periodic restart process
Create a file /etc/systemd/system/puyoskey.timer
:
[Unit]
Description = Puyoskey restart timer
[Timer]
OnCalendar = daily
Unit=puyoskey-restart.service
[Install]
WantedBy = timers.target
Create a file /etc/systemd/system/puyoskey-restart.service
:
[Unit]
Description=Restart puyoskey service
[Service]
Type=oneshot
ExecStart=/usr/bin/systemctl restart puyoskey.service
[Install]
WantedBy=multi-user.target
Enable timer:
systemctl enable puyoskey.timer
Update Guide 💫
git checkout master
git pull
git submodule update --init
pnpm install --frozen-lockfile
pnpm run build
pnpm run migrate
Troubleshooting 💣
If you encounter errors, try rebuilding Puyoskey:
pnpm run clean-all
pnpm rebuild
Updating from Upstream Sharkey 🦈
When Sharkey is updated, Puyoskey needs to follow suit:
# If you have not yet added sharkey remote
git remote add base https://activitypub.software/TransFem-org/Sharkey.git
git fetch base
git checkout -b stable base/stable
# Switch to puyoskey branch
git checkout master
# Merge from stable branch
git merge --squash stable
# Resolve any conflicts
# Commit with an appropriate message
git commit -m ":recycle: Merge updates from upstream as v2024.11.2"
git push origin master
Original Sharkey README
✨ Features
- ActivityPub support
Not on Sharkey? No problem! Not only can Sharkey instances talk to each other, but you can make friends with people on other networks like Mastodon and Pixelfed! - Federated Backgrounds and Music status
You can add a background to your profile as well as a music status via ListenBrainz, show everyone what music you are currently listening to - Mastodon API
Sharkey implements the Mastodon API unlike normal Misskey - UI/UX Improvements
Sharkey makes some UI/UX improvements to make it easier to navigate - Sign-Up Approval
With Sharkey, you can enable sign-ups, subject to manual moderator approval and mandatory user-provided reasons for joining. - Rich Web UI
Sharkey has a rich and easy to use Web UI! It is highly customizable, from changing the layout and adding widgets to making custom themes. Furthermore, plugins can be created using AiScript, an original programming language. - And much more...
Documentation
Sharkey Documentation can be found at Sharkey Documentation