Thanks for taking the time to contribute! MSK Paste is an open-source, self-hosted pastebin alternative licensed under AGPL-3.0-or-later. Contributions of all kinds are welcome: bug reports, feature ideas, documentation, and code.
This project follows the Contributor Covenant. By
participating, you are expected to uphold it. Please report unacceptable
behavior to info@msk-scripts.de.
- Report a bug — open a bug report
- Request a feature — open a feature request
- Report a security issue — do NOT open a public issue. Follow SECURITY.md instead.
- Improve docs or code — send a pull request (see below)
You need Node.js 20+ and a running MariaDB instance.
git clone https://github.com/MSK-Scripts/msk-paste.git
cd msk-paste
cp .env.example .env
# set IP_HASH_SECRET = $(openssl rand -hex 32) and your DB credentials
npm install
npm run migrate
npm run dev # http://localhost:3000Please make sure all of the following pass locally:
npm run lint # ESLint, 0 errors
npm run type-check # TypeScript strict, 0 errors
npm run build # production build succeeds- Keep changes focused. One logical change per pull request is easier to review than a large mixed one.
- Write in English. All GitHub content (code comments, commit messages, PR titles and bodies) is in English so everyone can follow along.
- Match the existing style. TypeScript strict mode, no
anyunless clearly justified, server-side data fetching by default, all user-facing strings go throughnext-intl. - Update translations. If you touch the UI, add keys to both
messages/de.jsonandmessages/en.json. - Describe your change. Fill out the pull request template so reviewers know what changed and how you tested it.
Use clear, present-tense commit messages that describe what the commit does, for
example Add word-wrap toggle to paste view. Reference related issues with
Fixes #123 where applicable.
Security issues must not be reported through public issues or pull requests. Please follow the process described in SECURITY.md.
By contributing, you agree that your contributions will be licensed under the project's AGPL-3.0-or-later license.