1
0
Fork 0
mirror of https://github.com/YunoHost-Apps/radicale_ynh.git synced 2024-09-03 20:16:14 +02:00

first commit

This commit is contained in:
Adrien Beudin 2013-11-28 17:44:39 +01:00
commit ef3c3b08a5
7 changed files with 280 additions and 0 deletions

124
conf/config Normal file
View file

@ -0,0 +1,124 @@
[server]
# CalDAV server hostnames separated by a comma
# IPv4 syntax: address:port
# IPv6 syntax: [address]:port
# IPv6 adresses are configured to only allow IPv6 connections
hosts = 127.0.0.1:5232
# Daemon flag
daemon = False
# File storing the PID in daemon mode
pid =
# SSL flag, enable HTTPS protocol
ssl = False
# SSL certificate path
certificate = /etc/apache2/ssl/server.crt
# SSL private key
key = /etc/apache2/ssl/server.key
# Reverse DNS to resolve client address in logs
dns_lookup = True
# Root URL of Radicale (starting and ending with a slash)
base_prefix = /
# Message displayed in the client when a password is needed
realm = Radicale - Password Required lol
[encoding]
# Encoding for responding requests
request = utf-8
# Encoding for storing local collections
stock = utf-8
[auth]
# Authentication method
# Value: None | htpasswd | IMAP | LDAP | PAM | courier | http
type = LDAP
# Usernames used for public collections, separated by a comma
public_users = public
# Usernames used for private collections, separated by a comma
private_users = private
# Htpasswd filename
htpasswd_filename = /etc/radicale/users
# Htpasswd encryption method
# Value: plain | sha1 | crypt
htpasswd_encryption = crypt
# LDAP server URL, with protocol and port
ldap_url = ldap://localhost:389/
# LDAP base path
ldap_base = ou=users,dc=yunohost,dc=org
# LDAP login attribute
ldap_attribute = uid
# LDAP filter string
# placed as X in a query of the form (&(...)X)
# example: (objectCategory=Person)(objectClass=User)(memberOf=cn=calenderusers,ou=users,dc=example,dc=org)
# leave empty if no additional filter is needed
ldap_filter = objectClass=inetOrgPerson
# LDAP dn for initial login, used if LDAP server does not allow anonymous searches
# Leave empty if searches are anonymous
ldap_binddn =
# LDAP password for initial login, used with ldap_binddn
ldap_password =
# LDAP scope of the search
ldap_scope = OneLevel
# IMAP Configuration
imap_hostname = localhost
imap_port = 143
imap_ssl = False
# PAM group user should be member of
pam_group_membership =
# Path to the Courier Authdaemon socket
courier_socket =
# HTTP authentication request URL endpoint
http_url =
# POST parameter to use for username
http_user_parameter =
# POST parameter to use for password
http_password_parameter =
[rights]
# Rights management method
# Value: None | owner_only | owner_write | from_file
type = owner_only
# File for rights management from_file
file = ~/.config/radicale/rights
[storage]
# Storage backend
# Value: filesystem | database
type = database
# Folder for storing local collections, created if not present
filesystem_folder = ~/.config/radicale/collections
# Database URL for SQLAlchemy
# dialect+driver://user:password@host/dbname[?key=value..]
# For example: sqlite:///var/db/radicale.db, postgresql://user:password@localhost/radicale
# See http://docs.sqlalchemy.org/en/rel_0_8/core/engines.html#sqlalchemy.create_engine
database_url = sqlite:///var/lib/radicale/radicale.db
[logging]
# Logging configuration file
# If no config is given, simple information is printed on the standard output
# For more information about the syntax of the configuration file, see:
# http://docs.python.org/library/logging.config.html
config = /etc/radicale/logging
# Set the default logging level to debug
debug = False
# Store all environment variables (including those set in the shell)
full_environment = False
# Additional HTTP headers
#[headers]
#Access-Control-Allow-Origin = *

48
conf/logging Normal file
View file

@ -0,0 +1,48 @@
# Loggers, handlers and formatters keys
[loggers]
# Loggers names, main configuration slots
keys = root
[handlers]
# Logging handlers, defining logging output methods
keys = console,file
[formatters]
# Logging formatters
keys = simple,full
# Loggers
[logger_root]
# Root logger
level = DEBUG
handlers = console,file
# Handlers
[handler_console]
# Console handler
class = StreamHandler
level = INFO
args = (sys.stdout,)
formatter = simple
[handler_file]
# File handler
class = FileHandler
args = ('/var/log/radicale',)
formatter = full
# Formatters
[formatter_simple]
# Simple output format
format = %(message)s
[formatter_full]
# Full output format
format = %(asctime)s - %(levelname)s: %(message)s

8
conf/nginx.conf Normal file
View file

@ -0,0 +1,8 @@
location PATHTOCHANGE {
alias ALIASTOCHANGE
if ($scheme = http) {
rewrite ^ https://$server_name$request_uri? permanent;
}
include uwsgi_params;
uwsgi_pass unix:///tmp/uwsgi.sock;
}

4
conf/radicale.wsgi Normal file
View file

@ -0,0 +1,4 @@
#!/usr/bin/env python
import radicale
radicale.log.start()
application = radicale.Application()

15
conf/uwsgi_params Normal file
View file

@ -0,0 +1,15 @@
uwsgi_param QUERY_STRING $query_string;
uwsgi_param REQUEST_METHOD $request_method;
uwsgi_param CONTENT_TYPE $content_type;
uwsgi_param CONTENT_LENGTH $content_length;
uwsgi_param REQUEST_URI $request_uri;
uwsgi_param PATH_INFO $document_uri;
uwsgi_param DOCUMENT_ROOT $document_root;
uwsgi_param SERVER_PROTOCOL $server_protocol;
uwsgi_param HTTPS $https if_not_empty;
uwsgi_param REMOTE_ADDR $remote_addr;
uwsgi_param REMOTE_PORT $remote_port;
uwsgi_param SERVER_PORT $server_port;
uwsgi_param SERVER_NAME $server_name;

33
manifest.json Normal file
View file

@ -0,0 +1,33 @@
{
"name": "Radicale",
"id": "radicale",
"description": {
"en": "CalDAV (calendar) and CardDAV (contact) server solution",
"fr": "Serveur CalDAV et CardDAV"
},
"developer": {
"name": "beudbeud",
"email": "beudbeud@beudibox.fr",
"url": "http://radicale.org"
},
"multi_instance": "false",
"arguments": {
"install" : [
{
"name": "domain",
"ask": {
"en": "Choose a domain for Roundcube"
},
"example": "domain.org"
},
{
"name": "path",
"ask": {
"en": "Choose a path for Radicale"
},
"example": "/sync",
"default": "/sync"
}
]
}
}

48
scripts/install Executable file
View file

@ -0,0 +1,48 @@
#!/bin/bash
# Retrieve arguments
domain=$1
path=$2
# Check domain/path availability
#sudo yunohost app checkurl $domain$path -a radicale
#if [[ ! $? -eq 0 ]]; then
# exit 1
#fi
# Check pip installation
dpkg -l | grep python-pip > /dev/null 2>&1
if [ $? = 1 ];
then
sudo apt-get install python-pip -y
fi
dpkg -l | grep python-virtualenv > /dev/null 2>&1
if [ $? = 1 ];
then
sudo apt-get install python-virtualenv -y
fi
# Init virtualenv
sudo virtualenv /usr/local/radicale
source /usr/local/radicale/bin/activate
# Install uwsgi
sudo pip install uwsgi==1.9.20
# Install radiace
sudo pip install radicale==0.8
# Set permissions to radicale directory
#sudo chown -R www-data: $final_path
#
## Modify Nginx configuration file and copy it to Nginx conf directory
#sed -i "s@PATHTOCHANGE@$path@g" ../conf/nginx.conf
#sed -i "s@ALIASTOCHANGE@$final_path/@g" ../conf/nginx.conf
#sudo cp ../conf/nginx.conf /etc/nginx/conf.d/$domain.d/radicale.conf
#
## Reload Nginx and regenerate SSOwat conf
#sudo service nginx reload
#sudo yunohost app ssowatconf