Sharpbin is a pastebin-style website built with ASP.NET Core and SvelteKit.
- User authentication and account management.
- Syntax highlighting for various programming languages.
- Private pastes with client-side encryption.
- Raw text serving for easy sharing and scripting.
- Paste editing including content, syntax, title, and expiration.
- Configurable paste expiration.
- Server-side paste compression to save storage.
- Captcha support via Cloudflare Turnstile.
- SharpbinV3.Server: Backend API built with C# and ASP.NET Core. Refer to its README for server-side development and configuration.
- SharpbinV3.Client: Frontend application built with SvelteKit and TypeScript. Refer to its README for client-side development and setup.
The easiest way to run SharpbinV3 is using Docker Compose.
- Ensure Docker and Docker Compose are installed.
- Clone the repository.
git clone https://github.com/whoswhip/Sharpbin.git- Run the following command in the root directory:
docker-compose up -dYou can configure the application using environment variables. When using Docker Compose, these can be set in the docker-compose.yml file.
ConnectionStrings__DefaultConnection: SQLite connection string (e.g.,Data Source=/app/data/sharpbin.db).JwtSettings__Secret: A secure string used for signing JWT tokens.AuthSettings__CF_Turnstile_SecretKey: Your Cloudflare Turnstile secret key.AuthSettings__CF_Turnstile_SiteKey: Your Cloudflare Turnstile site key.AuthSettings__Registration_Enabled: Set totrueby default, enables/disables registration.AuthSettings__First_User_Admin: Gives the first user the admin role, it is recommended to disable this after use.AuthSettings__Admins_Require_2FA: Enforces Admins to have 2FA when trying to do certain actions.PasteSettings__MaxTitleLength: Max title length in characters.PasteSettings__MaxPasteSizeInBytes: Max Paste Size set in bytes, the default is1_048_576(1MB)PasteSettings__EnablePasteCompression: Enables/Disables server-side paste compression,trueby default.PasteSettings__RequiresVerification: Enables/Disables CAPTCHA verification when creating pastes,trueby default.PasteSettings__View_HMAC_Secret: Required to securely hash viewer identifiersPasteSettings__View_Internal_API_Key: Enforces views to be counted/recorded only by the frontend, if set it needs to be the same for both backend and frontend.ASPNETCORE_ENVIRONMENT: Set toProductionorDevelopment.
VITE_API_URL: The URL of the backend API (e.g.,http://localhost:8080).VITE_ALLOWED_HOSTS: A comma separated list of allowed hosts (e.g.,localhost,sharpbin.whoswhip.dev)VIEW_INTERNAL_API_KEY: Enforces views to be counted/recorded only by the frontend, if set it needs to be the same for both backend and frontend.
The frontend will be accessible at http://localhost:5173.