Open source migroblogging platform powered by raccoons
Go to file
2024-05-16 05:56:07 -04:00
.config fix: pnpm-lock, upd: default config wording, fix: broken icon in deck layout 2024-04-14 11:11:30 -04:00
.devcontainer Fix(backend): inboxJobPerSecのデフォルト値を16から32に (#12631) 2023-12-13 08:14:34 +09:00
.forgejo/workflows Merge branch 'mirror-develop' into develop 2024-02-03 11:12:50 -05:00
.gitea/ISSUE_TEMPLATE Merge branch 'mirror-develop' into develop 2024-02-03 11:12:50 -05:00
.gitlab Update 13 files 2024-02-02 07:48:35 +00:00
.okteto ok-to-test with okteto (#8799) 2022-06-09 00:50:23 +09:00
.old/workflows Update 13 files 2024-02-02 07:48:35 +00:00
.vscode 設定を付けた & 設定自体をフォーマット (#12693) 2023-12-18 10:52:23 +09:00
assets cleanup: trim trailing whitespace (#11136) 2023-07-08 07:08:16 +09:00
chart authorized fetch #217 2023-12-23 15:26:42 +00:00
cypress Merge branch 'mirror-develop' into develop 2024-02-20 22:03:13 -05:00
fluent-emojis@cae981eb4c feat: introduce fluent emoji 2022-12-26 16:04:56 +09:00
locales Merge branch 'develop' of into develop 2024-05-10 18:27:00 -04:00
misskey-assets@0179793ec8 enhance(client): Sync widgets (#8512) 2022-12-27 14:55:11 +09:00
packages Merge branch 'develop' of into develop 2024-05-10 18:27:00 -04:00
scripts merge: upstream 2024-02-19 10:47:42 +01:00
tossface-emojis@3c0ac3f7bd upd: add tossface emojis as an option 2024-01-04 20:42:25 +01:00
.dockerignore feat: Introduce Meilisearch (#10755) 2023-05-05 08:52:14 +09:00
.dockleignore fix: aptのキャッシュを削除しないようにする (#9803) 2023-02-05 14:15:59 +09:00
.editorconfig cleanup: trim trailing whitespace (#11136) 2023-07-08 07:08:16 +09:00
.gitattributes 改行コードをLFに統一 (#9926) 2023-02-14 13:13:34 +09:00
.gitignore Lockpickification of branding 2024-01-23 06:20:30 -05:00
.gitlab-ci.yml pin to node 20 2024-05-09 19:20:49 +01:00
.gitmodules fix: icons and update urls 2024-02-19 18:46:42 +01:00
.node-version update node to 20.10.0 2023-11-24 09:20:41 +09:00
.npmrc fix: note edits, @sharkey packages 2024-02-28 04:34:39 -05:00
.vsls.json Add .vsls.json 2018-08-13 00:24:45 +09:00 merge upstream for 2024.2.1 2024-03-02 16:36:49 +00:00 docs: Update Code of Conduct to version 2.1 (#12150) 2023-11-13 16:52:54 +09:00
codecov.yml Update codecov.yml 2023-02-26 14:17:29 +09:00 update notes to make sure we remember to check import/create problems 2024-03-05 16:54:31 +00:00
COPYING 2024 2024-01-01 00:30:56 +09:00
crowdin.yml ドキュメントをmisskey-hubに移行 2021-11-05 16:18:52 +09:00
cypress.config.ts update cypress 2022-06-11 15:53:45 +09:00
docker-compose.local-db.yml chore: 開発モードでフロントエンドとバックエンドを独立して起動するようにする(再) (#12593) 2023-12-08 08:22:08 +09:00
docker-compose_example.yml Update docker-compose_example.yml 2024-02-01 14:42:19 +00:00
Dockerfile Feature/maybe nicer dockerfile 2024-03-08 16:13:47 +00:00 merge: upstream 2024-02-19 10:47:42 +01:00 Merge branch 'mirror-develop' into develop; fix: migration hellscape i made 2024-03-31 22:15:00 -04:00
LICENSE Use AGPLv3 2018-03-28 22:56:28 +09:00
package.json Merge branch 'develop' of into develop 2024-05-10 18:27:00 -04:00
pnpm-lock.yaml merge: handle non-ASCII emoji names (!464) 2024-05-02 21:06:10 +00:00
pnpm-workspace.yaml merge: upstream (1) 2024-01-21 13:11:23 +01:00
Procfile Create Procfile 2019-04-05 18:17:30 +09:00 Update 2024-05-16 05:56:07 -04:00 Update 2024-01-04 08:44:38 +09:00 Update 13 files 2024-02-02 07:48:35 +00:00

🦝 Lockpick

Open source migroblogging platform powered by raccoons

Please don't upload to GitHub

If you decide to use Lockpick on your own instance you will not be provided with support. I can not guarentee it is stable.


  • ActivityPub support
    Lockpick will communicate with other softwares that implement ActivityPub like Misskey, Mastodon, and Akkoma.
  • Customizable Web UI
    Lockpick adds additional client settings that you can use to make your UI as you'd like it.
  • Increased Mobile Support
    Lockpick's UI is more mobile friendly and adjusts to your screen size

🏠 The Only Instance

🖥️ Fresh Installation

Before starting, make sure you have all of the following:

  • a machine that is connected to the internet (best on Linux)
  • a domain or subdomain for the instance
  • a web server running on the machine

I reccomend the PM2 method, but you can also use Docker. If you run into problems with Docker, I may not be able to help as much.

With PM2 (reccomended)


  • NodeJS v20.4 or later
  • PostgreSQL v15 or later
  • Redis
  • FFmpeg
  • build-essential or equivalent
  • Python

Prepare environment

Clone the repository, install Node packages, and copy the default config.

git clone --recurse-submodules -b develop
cd Lockpick
pnpm install --frozen-lockfile
cp .config/example.yml .config/default.yml


Before starting, make sure you configure Lockpick. Comments in the file will help you out, but only the following need to be changed accordingly:

url: https://{DOMAIN}/
  host: localhost
  port: 5432
  db: lockpick
  user: lockpick

Database Setup

To run Lockpick, you need to be able to access a database. Login as the PostgreSQL user and create a user.

sudo su - postgres

Then, run the neccesary SQL queries and exit afterwards.

ALTER DATABASE lockpick OWNER TO lockpick;

Final Steps

After the database is setup, you're almost good to go! All you have left is to build Lockpick, create the schema, and start the instance.

pnpm build
pnpm run init
pnpm start

Now that you've tested if it can run, you can kill the process (CTRL+C will do it) and set it up for production. Next, install PM2.

npm i -g pm2
pm2 install pm2-logrotate

Then, you can start your instance in production mode.

pm2 start "NODE_ENV=production pnpm run start" --name Lockpick

🖥️ Updating

Updating Lockpick is simple and only takes a few commands. In your Lockpick directory as the Lockpick user run the following:

git pull
pnpm install --frozen-lockfile
pnpm run build
pnpm run migrate

...and then restart your instance. You're good to go!


I can't find out how to do something and it isn't listed here

Try checking out the official Misskey docs, some things are listed there that aren't here but work the same.

When I try updating, the build fails

Try running pnpm run clean and rerunning the update commands. Otherwise, you should make an issue.

📜 Changelog

This project does not use, and instead lists all changes chronologically here. Most recent changes at the top.


  • Added a drafts page to manage drafts locally saved in the user's browser localstorage.
  • Fix renotes not appearing in drafts properly


  • Reports in admin panel redesigned
    • Clearer language, instead of saying "Moderator: user" it says "Resolved by user"
    • Made resolved reports differently styled, they're more transparent until hovered.
    • Better for smaller screens (and most, looked weird on most), user reported now at top instead of on the left.
    • Moved a few elements around
    • Added consistent spacing

2024.3.1.dev1, 2024.3.1.dev2, 2024.3.1.dev3, and versions since 2024.1.0.dev5

  • Various merges from upstream Sharkey
  • Refer to boosts as repeats
  • Respect user preference of note style in more locations
  • "Repeated by {}" is now "{} repeated"
  • Add a smalled max width for instance ticker
  • Added themes
    • Catppuccin Mocha, Frappe, and Latte (all accent colors)
    • Iceshrimp
    • Rose Pine
  • Change UI for likes to be stars, make default a star
  • Change handling of likes
  • Fix stupid things I did to migrations
  • Add $[center ] and $[small ] MFM
  • Change "Pinned users" section to use push pin icon
  • Fix icons for sub/pub icons in federation tab of dashboard to be different instead of both being just planets
  • Adjust more locale strings to use the word "content warning" over "hidden content"
  • Change content warning from eye-slash to warning
  • Change last two random strings that are placeholders in the post form

2024.1.0.dev5, 2024.1.0.dev6

  • Make classic timeline sidebar items pop out on hover
  • Fix wrapping of mentions (origin)
  • Fix local instance ticker bug that stopped notes from rendering (origin)
  • Refactored shortened notes being replied to in timeline and notifications (origin)
  • Add toggle for icon on notes next to the time it was posted that indicates if a post is a reply
  • Add cat friend (origin)

2024.1.0.dev3, 2024.1.0.dev4

  • Fix long usernames linebreaking in short subnotes causing it to look awkward
  • Modify styling of Calendar widget to emphasize current day
  • Update English translations (see commit history for en-US.yml, mostly Reversi related)
  • Added fonts to the font picker
    • Almarai
    • Cabin
    • Geologica
    • IBM Plex Sans
    • Merriweather Sans
    • Montserrat
    • Nunito
    • Nunito Sans
    • Plus Jakarta Sans
    • Poppins
    • Public Sans
    • Raleway
    • Red Hat Display
    • Rethink Sans
    • Rubik
    • Space Grotesk
    • Space Mono
    • Urbanist
    • Work Sans
  • Replace icons
    • ph-smiley -> ph-plus for reaction buttons
  • Add circle corner roundness
  • Show alt text on hover of video (origin)
  • Use dropdown for font picker instead of radios
  • Update translations for shortened subnotes setting (origin)
  • Smaller avatars under detailed note (origin)
  • Add slim bottom bar for mobile with deck layout
  • Fix edits not allowing one poll option
  • Allow maximum of 25 poll options
  • Allow scrolling within post form
  • Adjust alignment and margin of icon in detailed note tabs
  • Only display the most recent pure renote (origin, origin)
  • Add option to only show icon on instance ticker (origin)
  • Automatically grow textarea (origin)
  • Have robots.txt automatically deny usage to the following: (origin)
    • CCBot
    • ChatGPT-User
    • GPTBot
    • Google-Extended
    • Omgilibot
    • FacebookBot
    • Amazonbot
  • Add English (Cat Mode) as a language

2024.1.0.pre1 (Pre-Release 1)

First Lockpick prerelease will include 2024.1.0.dev1 & 2024.1.0.dev2


  • Pull upstream Sharkey changes (see #4)
  • Remove donation modal.
  • Rename "Favorites" to "Bookmarks", other fedi software does not refer to this feature as favorites.
  • Rename "Comments" to "Content Warning"
  • Redesign the content warning field, it's taller on mobile and uses warning colors.
  • Fix inconsistant defederation visibility tooltips
  • Make widget sidebar opening button aligned to the center of the button.
  • Changed icons
    • Replaced ph-squares-four for widget sidebar with ph-stack
  • Use SkNote in bookmarks
  • Added v-tooltip for absolute time on notes
  • More aggressive no alt text indicator with warning background, text color, and warning icon


  • Changed icons
    • ph-pencil -> ph-pencil-simple
    • For boosts, ph-rocket-launch -> ph-repeat
    • For bubble timeline, ph-drop/ph-thumb-up -> ph-circles-three
    • For global timeline, ph-globe-hemisphere-west -> ph-planet
    • For local timeline, ph-planet -> ph-map-pin
    • ph-power -> ph-sign-out
    • ph-dots-nine -> ph-dots-three
  • Use v-tooltip more over title
  • Some hardcoded colors removed
    • #ff2a2a -> var(--error)
  • Margin changes
    • Increased margin between renote icon and renote text
  • Additional themes included
    • Purpura (default dark)
    • Wisteria
  • Stop using links
  • Add font picker
    • Option to use a font specified in theme files, otherwise falls back to Figtree
    • Option to use system-ui font
    • Add AtkinsonHyperlegible font
    • Add Commissioner font
    • Add DMSans font
    • Add Figtree font (default)
    • Add FiraSans font
    • Add Inter font
    • Add JetBrainsMono font
    • Add Lato font
    • Add Lexend font
    • Add NotoSans font
    • Add OpenDyslexic font
    • Add OpenSans font
    • Add Roboto font
    • Add SourceSans3 font
    • Add Ubuntu font
  • Remove annoying post warning
  • Allow polls with one option
  • Right align field names
  • Changed default settings
    • Timeline note gaps enabled by default
    • Renotes collapsed by default
    • Emoji picker scale is big
    • Emoji picker width is 8 columns
    • Emoji picker height is big
    • Reaction display size is small
    • Blur effects enabled
  • Mobile bottom bar shorter
  • Instance ticker opens instance information page on click
  • Hovering over instance ticker shows software name and version
  • Remove channel picker icon from main timeline page
  • Make footer wider on smaller screens
  • Add icon to indicate if a post is a reply
  • Rounded corner radius by default
  • Put profile stat count and label on same line
  • Remove AiChan