ぷよすきー (Puyoskey)

**🌎 [Puyoskey](https://git.v-sli.me/HidemaruOwO/puyoskey) is a customized federated SNS based on [Sharkey](https://joinsharkey.org/)**
## 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](./docs/customized.md). ## Installation Guide 💨
Install dependencies for AlmaLinux 9 Server ⛏️ Install CLI dependencies: ```bash 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: ```bash 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: ```bash useradd -m -D puyoskey ``` Switch to created user: ```bash sudo -iu puyoskey ``` Clone the Puyoskey repository, and copy the example configuration file: ```bash 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: ```bash pnpm run build ``` ### Database Setup (PostgreSQL) Attach to psql: ```bash sudo -u postgres psql ``` ```sql 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: ```bash vim .config/default.yml ``` Create the schema: ```bash pnpm run init ``` Start Puyoskey: ```bash pnpm start ```
Run with systemd (you should change user to root) Create a file `/etc/systemd/system/puyoskey.service` containing: ```bash [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: ```bash systemctl daemon-reload systemctl enable --now puyoskey.service ``` Optional: For periodic restart process Create a file `/etc/systemd/system/puyoskey.timer`: ```bash [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`: ```bash [Unit] Description=Restart puyoskey service [Service] Type=oneshot ExecStart=/usr/bin/systemctl restart puyoskey.service [Install] WantedBy=multi-user.target ``` Enable timer: ```bash systemctl enable puyoskey.timer ```
## Update Guide 💫 ```bash 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: ```bash pnpm run clean-all pnpm rebuild ``` ## Updating from Upstream Sharkey 🦈 When Sharkey is updated, Puyoskey needs to follow suit: ```bash # 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
Sharkey logo **🌎 **[Sharkey](https://joinsharkey.org/)** is an open source, decentralized social media platform that's free forever! 🚀** --- create an instance become a contributor join the community donate ---
## ✨ 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](https://docs.joinsharkey.org/docs/install/fresh/)