https://github.com/lukasbecvar/code-paste
Free webapp service for storing and sharing text and code snippets
https://github.com/lukasbecvar/code-paste
mysql paste pastebin php snippets symfony
Last synced: about 2 months ago
JSON representation
Free webapp service for storing and sharing text and code snippets
- Host: GitHub
- URL: https://github.com/lukasbecvar/code-paste
- Owner: lukasbecvar
- License: mit
- Created: 2024-09-10T12:05:33.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2025-02-06T07:43:27.000Z (over 1 year ago)
- Last Synced: 2025-02-06T08:34:36.125Z (over 1 year ago)
- Topics: mysql, paste, pastebin, php, snippets, symfony
- Language: PHP
- Homepage: https://paste.becvar.xyz/
- Size: 253 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.MD
- License: LICENSE
Awesome Lists containing this project
README
# Code paste
Self-hosted solution for sharing text and code snippets.
## Preview

## Features
- Share text and code snippets
- Paste content encryption
- SSL only mode
- Maintenance mode
- Syntax highlighting
## Installation - Development
1. Clone the repository
2. Run with docker compose (scripts/docker-start-dev.sh)
3. Load testing database fixtures (scripts/load-fixtures.sh)
## Installation - Production
1. Clone this repository
2. Install dependencies ``npm install && composer install``
3. Build assets ``npm run build``
4. Create database ``php bin/console doctrine:database:create --if-not-exists``
5. Migrate database ``php bin/console doctrine:migrations:migrate --no-interaction``
6. Configure website host [apache-site.conf](./docker/configs/apache-site.conf)
## Installation - Docker
You can build a docker image using the production docker file or use the image available here in github packages.
```yaml
php:
image: ghcr.io/lukasbecvar/code-paste:latest
container_name: code_paste_webserver
restart: always
depends_on:
- mysql
environment:
- DATABASE_HOST=127.0.0.1
- DATABASE_PORT=3306
- DATABASE_NAME=code_paste
- DATABASE_USERNAME=root
- DATABASE_PASSWORD=root
...
volumes:
- ./.docker/services/log:/var/log
mem_limit: 1g
ports:
- "80:80"
networks:
- main
```
## Configuration
1. Create your own .env file with name .env.prod and change app env in main .env
2. Configure SSL_ONLY false or true if you want allow only SSL traffic
3. Configure MAINTENANCE_MODE true or false if you want to enable maintenance mode
4. ENCRYPTION_MODE true or false if you want to enable paste content encryption (key is APP_SECRET value in .env)
5. Configure DATABASE_DRIVER, DATABASE_HOST, DATABASE_PORT, DATABASE_NAME, DATABASE_USERNAME, DATABASE_PASSWORD
#### Environment variables
The environment variables are loaded from .env file. You can create .env file in root directory with your configuration.
| Variable | Description | Example value |
| --- | --- | --- |
| APP_SECRET | Secret key for application security (used for hashing, encryption, etc.) | 6514635062ba34f218535f9f106fd20b |
| SSL_ONLY | Allow access only via HTTPS protocol | false |
| MAINTENANCE_MODE | Enable or disable maintenance mode | false |
| ENCRYPTION_MODE | Enable encryption for pasted content | true |
| CONTACT_EMAIL | Administrator contact email | lukas@becvar.xyz |
| EXTERNAL_LOG_ENABLED | Enable external log sending | false |
| EXTERNAL_LOG_URL | External log API endpoint | https://admin.becvar.xyz/api/external/log |
| EXTERNAL_LOG_TOKEN | Authentication token for external log API | cbd8b08271wefg |
| METRICS_EXPORTER_ENABLED | Enable metrics exporter | true |
| METRICS_EXPORTER_ALLOWED_IP | IP address allowed to access metrics (`%` = all) | % |
| VISITOR_TRACKING_ENABLED | Enable visitor tracking | false |
| VISITOR_TRACKING_SERVICE_NAME | Service name for visitor tracking | paste.becvar.xyz |
| VISITOR_TRACKING_URL | API endpoint for visitor tracking | https://admin.becvar.xyz/api/monitoring/visitor/tracking |
| DATABASE_DRIVER | Database driver type | pdo_mysql |
| DATABASE_VERSION | Database version | 8.0.43 |
| DATABASE_HOST | Database host address | 127.0.0.1 |
| DATABASE_PORT | Database port | 3306 |
| DATABASE_NAME | Database name | code_paste |
| DATABASE_USERNAME | Database username | root |
| DATABASE_PASSWORD | Database password | root |
## Requirements
- Apache or Nginx web server with PHP support
- NodeJS with npm
- Composer
- PHP 8.5
- MySQL
## License
This software is licensed under the [MIT license](LICENSE).