Sign inSign up

bugfishtm/obr

By bugfishtm

β€’Updated 2 days ago

Simple book rental software with user-friendly features and multi-language support.

Image
Web servers
Operating systems
Databases & storage
0

1.5K

bugfishtm/obr repository overview

⁠Online-Book-Renting (OBR)

β πŸ” Overview

Simple book rental software with user-friendly features, multi-language support, and efficient ISBN management.

β βš™οΈ Installation

To deploy the Docker image bugfishtm/obr:latest using a single command, you can use the following:

⁠Docker Compose
services:
  obr:
    image: bugfishtm/obr:latest
    restart: always
    volumes:
      - ssl:/opt/sf_ssl
      - data:/var/www/html/_data
      - mysql:/var/lib/mysql
      - certbot:/etc/letsencrypt
    ports:
      - 80:80
      - 443:443
    environment:
      TZ:                                       "${sf_timezone}"  
      PHP_MEMORY_LIMIT:                         "${SF_PHP_MEMORY_LIMIT}"
      PHP_MAX_EXECUTION_TIME:                   "${SF_PHP_MAX_EXECUTION_TIME}"
      PHP_POST_MAX_SIZE:                        "${SF_PHP_POST_MAX_SIZE}"
      PHP_UPLOAD_MAX_SIZE:                      "${SF_PHP_UPLOAD_MAX_SIZE}"
      PHP_MAX_INPUT_VARS:                       "${SF_PHP_MAX_INPUT_VARS}"
      PHP_MAX_INPUT_TIME:                       "${SF_PHP_MAX_INPUT_TIME}"
      PHP_OUTPUT_BUFFERING:                     "${SF_PHP_OUTPUT_BUFFERING}"
      PHP_ZLIB_OUTPUT_COMPRESSION:              "${SF_PHP_ZLIB_OUTPUT_COMPRESSION}"
      PHP_OPCACHE_ENABLE:                       "${SF_PHP_OPCACHE_ENABLE}"
      PHP_OPCACHE_MEMORY_CONSUMPTION:           "${SF_PHP_OPCACHE_MEMORY_CONSUMPTION}"
      PHP_OPCACHE_MAX_ACCELERATED_FILES:        "${SF_PHP_OPCACHE_MAX_ACCELERATED_FILES}"
      PHP_OPCACHE_VALIDATE_TIMESTAMPS:          "${SF_PHP_OPCACHE_VALIDATE_TIMESTAMPS}"
      PHP_OPCACHE_JIT:                          "${SF_PHP_OPCACHE_JIT}"
      PHP_OPCACHE_JIT_BUFFER_SIZE:              "${SF_PHP_OPCACHE_JIT_BUFFER_SIZE}"
      PHP_FPM_PM:                               "${SF_PHP_FPM_PM}"
      PHP_FPM_PM_MAX_CHILDREN:                  "${SF_PHP_FPM_PM_MAX_CHILDREN}"
      PHP_FPM_PM_START_SERVERS:                 "${SF_PHP_FPM_PM_START_SERVERS}"
      PHP_FPM_PM_MIN_SPARE_SERVERS:             "${SF_PHP_FPM_PM_MIN_SPARE_SERVERS}"
      PHP_FPM_PM_MAX_SPARE_SERVERS:             "${SF_PHP_FPM_PM_MAX_SPARE_SERVERS}"
      PHP_FPM_PM_MAX_REQUESTS:                  "${SF_PHP_FPM_PM_MAX_REQUESTS}"     
      sf_ct_update_on_start:                    "${sf_ct_update_on_start}"  
      sf_timezone:                              "${sf_timezone}"
      sf_db_pass:                               "${sf_db_pass}"
      sf_url:                                   "${sf_url}"
      sf_secret:                                "${sf_secret}"    
      sf_letsencrypt_enable:                    "${sf_letsencrypt_enable}"
      sf_letsencrypt_domain:                    "${sf_letsencrypt_domain}"
      sf_letsencrypt_email:                     "${sf_letsencrypt_email}"
      SF_MYSQL_SETUP_BUFFER_POOL_SIZE:          "${SF_MYSQL_SETUP_BUFFER_POOL_SIZE}"
      SF_MYSQL_SETUP_BUFFER_POOL_INSTANCES:     "${SF_MYSQL_SETUP_BUFFER_POOL_INSTANCES}"
      SF_MYSQL_TABLE_OPEN_CACHE:                "${SF_MYSQL_TABLE_OPEN_CACHE}"
      SF_MYSQL_SETUP_LOG_SIZE:                  "${SF_MYSQL_SETUP_LOG_SIZE}"
      SF_MYSQL_MAX_CONN:                        "${SF_MYSQL_MAX_CONN}"
      SF_MYSQL_FLUSH_TRX_COMMIT:                "${SF_MYSQL_FLUSH_TRX_COMMIT}"
      SF_MYSQL_CAPACITY:                        "${SF_MYSQL_CAPACITY}"
      sf_db_host:                               "${sf_db_host}"   
      sf_db_db:                                 "${sf_db_db}"   
      sf_db_user:                               "${sf_db_user}"   
      sf_db_port:                               "${sf_db_port}"   
      sf_db_prefix:                             "${sf_db_prefix}"   
      sf_cookie_prefix:                         "${sf_cookie_prefix}"   
volumes:
  ssl:
  certbot:
  mysql:
  data:
  

⁠Environment Variables
##
## OBR Docker Env Variable File
##

##
## Time Zone Setup
## Set up Timezone like example: Europe/Berlin
## Use tz identifiers from https://en.wikipedia.org/wiki/List_of_tz_database_time_zones
##
sf_timezone="Europe/Berlin"

##
## Database Password for Root Account
## Do not only use following signs:
## A-Z a-z 0-1 ! = ?
##
sf_db_pass="secretdbpassword"

##
## Secret Key Configuration
## This key is required to encrypt OBR data.  
## Changing the key while the instance is running will make existing  
## encrypted data inaccessible. Keep this key safe and never lose it!
## Do not use more than 32 Signs.
##  
sf_secret="generate_your_secret_key"

##
## Public URL where this website will be visible on.
## OBR may not depend on this setting and will use auto-fetched current site url.
## So get sure to set up your reverse proxy to get a valid connection.
## Can be HTTP/HTTPS URL, OBR should not be installed in a websites sub-folder.
##
sf_url="https://localhost"

##
## Let's Encrypt Settings
## Enable or disable automatic Let's Encrypt SSL certificate issuance.
## - sf_letsencrypt_enable: Set to 1 to enable, 0 to disable.
## - sf_letsencrypt_domain: The domain name to issue the certificate for.
## - sf_letsencrypt_email: Email address for Let's Encrypt registration and notifications.
##
sf_letsencrypt_enable=0
sf_letsencrypt_domain="localhost"
sf_letsencrypt_email="localhost@localhost"

##
## Database Details for Connection
## Leave as it is, do only change if you know what you are doing!
##
sf_db_host="127.0.0.1"
sf_db_db="suitefish"
sf_db_user="root"
sf_db_prefix="sf_"
sf_db_port=3306

##
## OBR Cookie Prefix
## Do not change unless you know what you are doing.
##
sf_cookie_prefix="sf_"

##
## Container upgrade settings
## Controls whether the container should automatically update and upgrade packages each time it starts.
## 1 = enable automatic updates/upgrades on startup
## 0 = skip update/upgrade steps on startup for faster boot
##
sf_ct_update_on_start=0

##
## Expert PHP Settings
## Depending on Server Hardware and Website Usage
##	  
SF_PHP_MEMORY_LIMIT=512M	  
SF_PHP_MAX_EXECUTION_TIME=300	  
SF_PHP_POST_MAX_SIZE=128M	  
SF_PHP_UPLOAD_MAX_SIZE=100M
SF_PHP_MAX_INPUT_VARS=9000
SF_PHP_MAX_INPUT_TIME=60
SF_PHP_OUTPUT_BUFFERING=4096
SF_PHP_ZLIB_OUTPUT_COMPRESSION=1
SF_PHP_OPCACHE_ENABLE=1
SF_PHP_OPCACHE_MEMORY_CONSUMPTION=512
SF_PHP_OPCACHE_MAX_ACCELERATED_FILES=20000
SF_PHP_OPCACHE_VALIDATE_TIMESTAMPS=0
SF_PHP_OPCACHE_JIT=tracing
SF_PHP_OPCACHE_JIT_BUFFER_SIZE=100M
SF_PHP_FPM_PM=dynamic
SF_PHP_FPM_PM_MAX_CHILDREN=50      
SF_PHP_FPM_PM_START_SERVERS=10
SF_PHP_FPM_PM_MIN_SPARE_SERVERS=5
SF_PHP_FPM_PM_MAX_SPARE_SERVERS=20
SF_PHP_FPM_PM_MAX_REQUESTS=1000

##
## Expert MySQL Settings
## Depending on Server Hardware and Website Usage
##	  
SF_MYSQL_SETUP_BUFFER_POOL_SIZE=2G
SF_MYSQL_SETUP_BUFFER_POOL_INSTANCES=8
SF_MYSQL_SETUP_LOG_SIZE=256M
SF_MYSQL_MAX_CONN=200    
SF_MYSQL_FLUSH_TRX_COMMIT=2    
SF_MYSQL_CAPACITY=2000    
SF_MYSQL_TABLE_OPEN_CACHE=4000    

⁠Initial Login

Initial user account for the website after deployment:
username: [email protected]⁠
password: changeme

⁠Volumes
VolumeDescription
mysqlStores persistent mysql database data.
dataStores persistent website data.
certbotFolder for Certbot Certificates.
sslStores custom created ssl certificate on first run. Can be replaced with own certificate or ignored.
⁠Ports
PortDescription
80Port for HTTP Connections to website.
443Port for HTTPS Connections to website.

β πŸ“– Documentation

The following documentation is intended for both end-users and developers.

DescriptionLink
Access the online documentation for this project.https://bugfishtm.github.io/Online-Book-Renting/index.html⁠

⁠❓ Support Channels

If you encounter any issues or have questions while using this software, feel free to contact us:

β πŸ“’ Spread the Word

Help us grow by sharing this project with others! You can:

  • Tweet about it – Share your thoughts on Twitter/X⁠ and link us!
  • Post on LinkedIn – Let your professional network know about this project on LinkedIn⁠.
  • Share on Reddit – Talk about it in relevant subreddits like r/programming⁠ or r/opensource⁠.
  • Tell Your Community – Spread the word in Discord servers, Slack groups, and forums.

⁠🀝 Community Guidelines

We’re on a mission to create groundbreaking solutions, pushing the boundaries of technology. By being here, you’re an integral part of that journey.

Positive Guidelines:

  • Be kind, empathetic, and respectful in all interactions.
  • Engage thoughtfully, offering constructive, solution-oriented feedback.
  • Foster an environment of collaboration, support, and mutual respect.

Unacceptable Behavior:

  • Harassment, hate speech, or offensive language.
  • Personal attacks, discrimination, or any form of bullying.
  • Sharing private or sensitive information without explicit consent.

Let’s collaborate, inspire one another, and build something extraordinary together!

β πŸ›‘οΈ Warranty and Security

I take security seriously and appreciate responsible disclosure. If you discover a vulnerability, please follow these steps:

  • Do not report it via public GitHub issues or discussions. Instead, please contact the [email protected]⁠ email address directly.
  • Provide as much detail as possible, including a description of the issue, steps to reproduce it, and its potential impact.

I aim to acknowledge reports within 2–4 weeks and will update you on our progress once the issue is verified and addressed.

This software is provided as-is, without any guarantees of security, reliability, or fitness for any particular purpose. We do not take responsibility for any damage, data loss, security breaches, or other issues that may arise from using this software. By using this software, you agree that We are not liable for any direct, indirect, incidental, or consequential damages. Use it at your own risk.

β πŸ“œ License Information

The license for this software can be found in the LICENSE.md⁠ file.

🐟 Bugfish

Tag summary

Content type

Image

Digest

sha256:580d366ae…

Size

758.3 MB

Last updated

2 days ago

docker pull bugfishtm/obr