Git Product home page Git Product logo

customerdb-server's Introduction

Customer Database Server

With this PHP web app you can set up your own server for the Android and iOS app "Customer Database".

Play Store App Store

Highlights

  • multi-tenant capable
  • read-only CardDAV API (e.g. for syncing with your email client or router phone book (for DECT phone))

System Requirements

  • Linux OS (Debian recommended)
  • Apache 2 Webserver + PHP 7
  • MySQL/MariaDB Database Server

Installation (On A Root Server)

  1. Install Apache 2, PHP 7 (with php-curl) and MySQL/MariaDB on a Linux server.
  2. Download the latest release and unpack it into /srv/www/customerdb.
  3. Set your Apache (virtual host) web root directory to /srv/www/customerdb/web by editing the corresponding configuration file inside /etc/apache2/sites-enabled.
  4. Create a database on your MySQL server and import the schema from sql/customerdb.sql.
  5. Edit/create conf.php from the example file (conf.php.example) and enter your MySQL credentials. Please do not use the root user but create a new user which is only allowed to operate on the specific database.
  6. Select "Own Server" in the settings of your Customer Database app and enter the full URL to the web/api.php script. Example: http://192.168.2.10/api.php.
  7. Create an account. You can do this in the app (if the API and registration is enabled in conf.php) or by using the command line tool on the server (php console.php createuser <username> <password>).

Installation (On A Managed Server)

  1. Download the latest release and unpack it into your webspace.
  2. Create a database on your MySQL server and import the schema from sql/customerdb.sql using phpMyAdmin or a similar web-based tool from your hosting provider.
  3. Edit/create conf.php from the example file (conf.php.example) and enter your MySQL credentials.
  4. Select "Own Server" in the settings of your Customer Database app and enter the full URL to the web/api.php script. Example: http://example.com/web/api.php.
  5. Ensure that the API and registration is enabled in conf.php. Now create a sync account inside the app.
  6. After you created your personal account on your server, you may now want to disable the registration in conf.php.

Further (Optional) Steps

Especially if your server is available from the internet (and not only locally in your home network):

  • it is highly recommended to setup HTTPS on your web server
  • it is highly recommended to setup fail2ban on your web server (see lib/fail2ban for more information)
  • you may want to disable the user registration in the conf.php file (you can also disable the API or the web frontend here)

Upgrade

For upgrading your server to a newer version, please read Upgrade.md.

(API) Documentation

Please have a look at the docs folder.

Development Status

Currenty, these scripts only provide the API. It is planned to provide a full web frontend for creating and editing customer records in the web browser.

customerdb-server's People

Contributors

schorschii avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.