Securely share one-time messages over the Internet. Messages are encrypted in the browser before being sent to the server to be stored. A sharable link is then provided, which will then decrypt the message in the browser and delete it from the server. Messages also have an expiration and are automatically purged from the server when they expire.
- Apache
- PHP 8.2 FPM with the following extensions:
- PDO
- MySQL
- JSON
- Composer
- MariaDB
Install dependencies:
composer install --no-dev --optimize-autoloader
composer install --no-dev -d toolsCreate a config.php file at the top level of the source with at least the following, adjusting values as needed:
<?php
return [
'database' => [
'database' => 'burnafterreading',
'username' => 'burnafterreading',
'password' => 'PutPasswordHere'
]
];See public/index.php for additional configuration options.
This assumes that the database and database user is called 'burnafterreading', and another migration account is called 'burnafterreading_migration'. Adjust the below to match your environment.
GRANT SELECT, INSERT, UPDATE, DELETE ON burnafterreading.* TO burnafterreading@localhost;
GRANT SELECT, INSERT, UPDATE, DELETE, ALTER, CREATE, DROP ON burnafterreading.* TO burnafterreading_migration@localhost;Create a phinx-config.php:
<?php
return [
'database' => [
'database' => 'burnafterreading',
'username' => 'burnafterreading_migration',
'password' => 'PutPasswordHere'
]
];Run the migration:
php tools/vendor/bin/phinx migrate<VirtualHost *:80>
ServerName example.com
DocumentRoot /srv/bar/public
<Directory /srv/bar/public>
Require all granted
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^ index.php [QSA,L]
</Directory>
CustomLog /dev/null combined
ErrorLog /dev/null
</VirtualHost>The cron.php file should be run every 5 minutes. This deletes unopened messages that have expired.
*/5 * * * * php /srv/bar/cron.php >/dev/null 2>&1
Copyright (C) 2025 Snail Paste, LLC
This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.
Some files are distributed under different licenses:
- public/css/bootstrap.min.css and public/css/bootstrap.min.css.map (copied during
composer install): MIT License, Copyright (c) 2011-2024 The Bootstrap Authors - The logo.svg and logo.png files use Dummy Text from GGBotNet licensed under Creative Commons Zero v1.0 Universal