Git Product home page Git Product logo

baikal's Introduction

Baïkal 2 - CalDAV+CardDAV Server Application

Harder, Better, Faster, Stronger

This is a development version of Baïkal 2 - NOT FOR PRODUCTION USE.

Baïkal 2 is based on SabreDAV and Symfony2. Baïkal 2 is designed to be usable on PAAS hosting out-of-the-box (https://www.heroku.com/, https://scalingo.com/, etc.).

Demo

Have a look at the running demo here : http://baikal2.scalingo.io (Hosting graciously provided by Scalingo).

Contribute !

Fellow backend and frontend developers, we need your help !

The roadmap to version 2.0 is here: https://github.com/netgusto/Baikal/milestones/Ba%C3%AFkal%202.0.0

If you want to help, and you have a strong experience in Symfony, ReactJS, HTML/CSS, or anything else you think could be useful, please contact us at [email protected] or on Twitter http://twitter.com/BaikalServer

Screenshots

Admin Dashboard

User management

Calendar web client, week view (full-featured)

Calendar web client, month view (read-only for now)

Contact web client (read-only for now)

Installation: PAAS

Scalingo (ex Appsdeck)

Scalingo is the trendy European PAAS provider. See their offer here https://scalingo.com

  1. git clone -b branch-2 https://github.com/netgusto/Baikal.git
  2. Create your Scalingo application (let's say we call it my-baikal)
  3. Add the MySQL addon to your container
  4. cd Baikal
  5. git remote add scalingo [email protected]:my-baikal.git
  6. git push scalingo branch-2:master
  7. Once the app has booted, open http://my-baikal.scalingo.io in your web browser.
  8. Log in using the default account created during initialization (username: admin, password: password).
  9. First thing to do then is to change your password (Upper right corner of the screen: My profile).
  10. Et voilà !

Heroku

Heroku is the leading American PAAS provider. See their offer here http://heroku.com

  1. git clone -b branch-2 https://github.com/netgusto/Baikal.git
  2. Create your Heroku app (let's say we call it my-baikal)
  3. cd Baikal
  4. Bind your app to Heroku: heroku git:remote -a my-baikal
  5. Add the PostgreSQL addon to your app: heroku addons:add heroku-postgresql and note the name of your database (something like HEROKU_POSTGRESQL_AMBER_URL)
  6. Promote the database: heroku pg:promote HEROKU_POSTGRESQL_AMBER_URL (replace HEROKU_POSTGRESQL_AMBER_URL with the name Heroku just gave you on the previous line)
  7. Declare the PHP buildpack: heroku config:set BUILDPACK_URL=https://github.com/heroku/heroku-buildpack-php
  8. Deploy: git push heroku branch-2:master
  9. Once the app has booted, open http://my-baikal.herokuapp.com in your web browser.
  10. Log in using the default account created during initialization (username: admin, password: password).
  11. First thing to do then is to change your password (Upper right corner of the screen: My profile).
  12. Et voilà !

Installation: Classic platform (not PAAS)

Production setup

Note: for now, composer is required for the installation.

# 1. Install composer if not already installed: <https://getcomposer.org/download/>

# 2. Clone the Baïkal 2 source code
$ git clone -b branch-2 https://github.com/netgusto/Baikal.git

# 4. Enter the Baikal folder
$ cd Baikal

# 5. Initialize the application settings
$ cp app/config/defaults/data.parameters.dist.yml data/parameters.yml
$ cp app/config/defaults/data.environment.dist.yml data/environment.yml

# 6. Configure your database connection in data/environment.yml
# // open 'data/environment.yml', uncomment and edit the DATABASE_URL variable
# // By default, Baïkal will use a SQLite database stored in 'data/database.db'

# 7. Install Baïkal PHP dependencies, and initialize Baïkal
# // at the root of the project
$ composer install --optimize-autoloader

# 10. Boot the PHP built-in server (just to test the app; in production, use an HTTP server like Apache or nginx)
$ php app/console server:run --env=prod

And then open http://localhost:8000 in your web browser.

Log in using the default account created during initialization (username: admin, password: password).

First thing to do then is to change your password (Upper right corner of the screen: My profile).

Development setup

Note: composer, npm, bower and grunt are required for development.

# 1. Install composer if not already installed: <https://getcomposer.org/download/>

# 2. Install node + npm for your system if not already installed: <http://nodejs.org/download/>

# 3. Clone the Baïkal2 source code
$ git clone -b branch-2 https://github.com/netgusto/Baikal.git

# 4. Enter the Baikal folder
$ cd Baikal

# 5. Initialize the application settings
$ cp app/config/defaults/data.parameters.dist.yml data/parameters.yml
$ cp app/config/defaults/data.environment.dist.yml data/environment.yml

# 6. Configure your database connection in data/environment.yml
# // open 'data/environment.yml', uncomment and edit the DATABASE_URL variable
# // By default, Baïkal will use a SQLite database stored in 'data/database.db'

# 7. Install Baïkal PHP dependencies, and initialize Baïkal
# // at the root of the project
$ composer install --optimize-autoloader

# 8. Install required node packages in the global scope:
$ sudo npm install -g bower grunt-cli

# 9. Unpack subprojects
$ npm run unpack

# 10. Boot the development server
$ npm run dev

And then open http://localhost:8000 in your web browser.

Log in using the default account created during initialization (username: admin, password: password).

First thing to do then is to change your password (Upper right corner of the screen: My profile).

Packaging for release

If you modified the frontend apps (located in web/apps/), make sure to build them before release:

$ npm run build

Roadmap

  • Add unit tests
  • Add "Todo list" feature
  • Add "Notes" feature ?
  • Add Import
  • Add export
  • Add calendar sharing
  • Review Baïkal 1 github feature requests, and implement the most demanded ones.

If you are willing to participate, and know your way in whatever domain you want to help, please feel free to mail me at [email protected] (I have little time so please do not lose your patience if I don't answer :p)

Calendar and Contacts client subscription

Apple Calendar And Apple Contacts

For both http and https

  • "Add account ..."
  • Select "Manual"
  • login: your Baïkal username
  • pass: your password
  • Host: http://localhost:8000/ or https://localhost:8000/ (http:// or https://)
    • Note the required trailing slash; if missing, Apple Calendar will not be able to autoconnect to Baïkal

baikal's People

Contributors

altima avatar bluegreenhorde avatar busch avatar cimm avatar evert avatar fhemberger avatar geef avatar janpieper avatar jentsch avatar josteink avatar ljanyst avatar lpirl avatar netgusto avatar posativ avatar rsertelon avatar skyhook19 avatar soulou avatar torzak 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.