Skip to content

Commit

Permalink
first commit
Browse files Browse the repository at this point in the history
  • Loading branch information
magikcypress committed Mar 14, 2017
0 parents commit dc0a1da
Show file tree
Hide file tree
Showing 17 changed files with 1,964 additions and 0 deletions.
675 changes: 675 additions & 0 deletions LICENSE

Large diffs are not rendered by default.

7 changes: 7 additions & 0 deletions README.md
@@ -0,0 +1,7 @@
# Mediadrop for YunoHost

Can not be installed on ARM

### Version 1.0.0 (13/03/17)

- Create script install
36 changes: 36 additions & 0 deletions check_process
@@ -0,0 +1,36 @@
;; Test complet sans multisite
auto_remove=1
; Manifest
domain="domain.tld" (DOMAIN)
path="/path" (PATH)
admin="john" (USER)
language="fr_FR"
is_public="Yes" (PUBLIC|public=Yes|private=No)
; Checks
pkg_linter=1
setup_sub_dir=1
setup_root=1
setup_nourl=0
setup_private=1
setup_public=1
upgrade=1
backup_restore=1
multi_instance=0
wrong_user=1
wrong_path=1
incorrect_path=1
corrupt_source=0
fail_download_source=0
port_already_use=0
final_path_already_use=0
;;; Levels
Level 1=auto
Level 2=auto
Level 3=auto
Level 4=1
Level 5=auto
Level 6=auto
Level 7=auto
Level 8=0
Level 9=0
Level 10=0
198 changes: 198 additions & 0 deletions conf/deployment.ini
@@ -0,0 +1,198 @@
## The second speedup will allow MediaDrop to take advantage of NGINX XSendfile and have NGINX serve ## all media files (.mp3, .mp4, etc.) directly. To enable this, edit another line in /path/to/deployment.ini. Find the files_serve_method line, and set it to nginx_redirect.
## enable NGINX as te default file serve method
# files_serve_method = nginx_redirect

#
# MediaDrop - Pylons development environment configuration
#
# The %(here)s variable will be replaced with the parent directory of this file
#
# IMPORTANT NOTE!! Do NOT use this config for any kind of production environ.
# Generate a new, production-safe config with this command:
# $ paster make-config MediaCore production.ini
[DEFAULT]
# WARNING == If debug is not set to false, you'll get the interactive
# debugger on production, which is a huge security hole.
debug = true

# Dont send error notifications by email when developing. That'd be annoying.
#email_to = you@yourdomain.com
smtp_server = localhost
error_email_from = __USER__@__DOMAIN__

[server:main]
use = egg:Paste#http
host = 127.0.0.1
port = 8080

[app:main]
# Specify the database for SQLAlchemy to use
sqlalchemy.url = mysql://__DB_USER__:__DB_PASS__@localhost/__DB_USER__?charset=utf8&use_unicode=0
sqlalchemy.echo = False
sqlalchemy.pool_recycle = 3600
# useful for plugin developers: log an error if you open extra db connections
# which are not returned to the connection pool by the end of the request.
db.check_for_leaked_connections = True

# Permission policies to restrict admin/media access. By default all
# permissions are bound to groups and a user can either view all media or none.
# custom plugins can implement more fine-grained policies (e.g. restrict view
# access to media in a specific category)
permission_policies = GroupBasedPermissionsPolicy

# Session salts.
beaker.session.secret = superdupersecret
sa_auth.cookie_secret = superdupersecret

# Specify an optional prefix for table names.
# Use this if you want to put MediaDrop in the same database as another app.
# XXX: If you use this setting and you want to enable search, you'll have
# to manually edit setup_triggers.sql to include this prefix.
# e.g. if you want your tables to be named like 'mcore_media', you should set:
# db_table_prefix = mcore

# mod_proxy settings (untested)
# Use this if you are hosting MediaDrop behind a proxy.
# e.g. If hosting MediaDrop via mod_proxy at the URL
# yoursite.com/my_proxied_mediadrop/, such that all requests are passed
# through to a Paste server at localhost:8080/, you should set:
# proxy_prefix = /my_proxied_mediadrop

# Method to use when servng static media files.
# apache_xsendfile - requires Apache 2.x and mod_xsendfile
# nginx_redirect - requires nginx and the creation of an internal location
# block with an alias from the path __mediacore_serve__ to
# your /path/to/data/media directory.
# See the full docs below for an example:
# http://mediadrop.net/docs/install/nginx-uwsgi.html
# default - uses environ['wsgi.file_wrapper'] if it's provided by the server,
# otherwise a pure-python file iterator returns the file in chunks
file_serve_method = default

# Enable automatic gzip compresson for all html/css/js/json responses.
# Keep this enabled unless you're serving MediaDrop via Apache and you
# are able to enable gzip there instead.
enable_gzip = true

# Data paths (your server user must be able to write to these paths!)
cache_dir = %(here)s/data
image_dir = %(here)s/data/images
media_dir = %(here)s/data/media

# Files can be moved to a trash-like folder instead of being deleted
# permanently from the filesystem. Uncomment the line below to enable this:
#deleted_files_dir = %(here)s/data/deleted

# If you'd like to fine-tune the individual locations of the cache data dirs
# for the Cache data, or the Session saves, un-comment the desired settings
# here:
#beaker.cache.data_dir = %(here)s/data/cache
#beaker.session.data_dir = %(here)s/data/sessions

# Specify the layout template name to wrap core MediaDrop output in
layout_template = layout

# Defines an external genshi template to wrap the output (including layout) in
external_template = false
external_template_name = external
external_template_url = http://some/valid_genshi_template.html
external_template_timeout = 600

# Misc app instance settings
use = egg:MediaCore
full_stack = true
static_files = true
app_instance_uuid = {2673572c-6fb8-405e-89ed-00e2d4192faa}
beaker.session.key = mediacore

# WARNING: *THE LINE BELOW MUST BE UNCOMMENTED ON A PRODUCTION ENVIRONMENT*
# Debug mode will enable the interactive debugging tool, allowing ANYONE to
# execute malicious code after an exception is raised.
#set debug = false


# Logging configuration
# Add additional loggers, handlers, formatters here
# Uses python's logging config file format
# http://docs.python.org/lib/logging-config-fileformat.html

[loggers]
keys = root, routes, mediadrop, sqlalchemy, auth

[handlers]
keys = console, wsgierrors
# To enable a MediaDrop-specific logfile, see the [handler_logfile] setting
# below, and add 'logfile' to the list of keys, like so
# keys = console, wsgierrors, logfile

[formatters]
keys = generic

# If you create additional loggers, add them as a key to [loggers]
[logger_root]
level = INFO
handlers = console

[logger_routes]
level = INFO
handlers =
qualname = routes.middleware
# "level = DEBUG" logs the route matched and routing variables.

[logger_mediadrop]
level = INFO
handlers =
qualname = mediacore

[logger_sqlalchemy]
level = WARN
handlers =
qualname = sqlalchemy.engine
# "level = INFO" logs SQL queries.
# "level = DEBUG" logs SQL queries and results.
# "level = WARN" logs neither. (Recommended for production systems.)

# A logger for authentication, identification and authorization -- this is
# repoze.who and repoze.what:
[logger_auth]
level = WARN
handlers =
qualname = auth

# If you create additional handlers, add them as a key to [handlers]
[handler_console]
class = StreamHandler
args = (sys.stderr,)
level = NOTSET
formatter = generic

[handler_wsgierrors]
# Handler for logging to the WSGI error handler (eg. apache's error log)
class = pylons.log.WSGIErrorsHandler
args = ()
level = NOTSET
format = generic

[handler_logfile]
# Handler for logging to a dedicated logfile. To use this, see the [handlers]
# section above; ensure the logfile you name is writeable by your server user.
class = FileHandler
args = ('/path/to/data/deployment.log','a')
level = NOTSET
formatter = generic

# If you create additional formatters, add them as a key to [formatters]
[formatter_generic]
format = %(asctime)s,%(msecs)03d %(levelname)-5.5s [%(name)s] [%(threadName)s] %(message)s
datefmt = %H:%M:%S

[uwsgi]
socket = /tmp/uwsgi-mediadrop.soc
master = true
processes = 5
home = /path/to/venv
daemonize = /var/log/uwsgi.log

## First, edit one line in /path/to/deployment.ini. Find the static_files line, and set it to false.
## disable static file serving with MediaDrop
# static_files = false
51 changes: 51 additions & 0 deletions conf/nginx.conf
@@ -0,0 +1,51 @@
location __PATHTOCHANGE__ {
alias __FINALPATH__/;

# And now we define the rest of our static locations below
location ~* ^/(appearance)/ {
root __FINALPATH__/data ;
break;
}

# All media and podcast images
location ~* ^(/images\/media|images\/podcasts) {
root __FINALPATH__/data ;
break;
}

# Our standard public file paths
location ~* ^/(styles|scripts|images)/ {
expires max;
add_header Cache-Control "public";
break;
}

# Configure NGINX XSendfile.
# We use an alias here instead of root so the path info
# __mediadrop_serve__ is stripped off.
# Note: "__mediadrop_serve__" is just the default prefix and can be
# configured using the option "nginx_serve_path" in your deployment.ini.
# Note: __mediadrop_serve__ should point to the path where MediaDrop
# stores its media files.
# Note: We define this as an "internal" location to prevent it from
# being served directly to end users.
# location /__FINALPATH__ {
# alias __FINALPATH__/data/media;
# internal;
#}

# Declare our default location to pass through to our app
# This will match any request not defined above and pass it to uWSGI
# Note: The uwsgi_pass directive must use the same socket that was
# defined in your deployment.ini [uwsgi] block.
# Note: Make sure that you pass in SCRIPT_NAME = '' otherwise uWSGI
# will raise a keyError when loading MediaDrop.
# location / {
# uwsgi_pass unix:///tmp/uwsgi-mediadrop.soc;
# include uwsgi_params;
# uwsgi_param SCRIPT_NAME '';
# }

#--PRIVATE--# Include SSOWAT user panel.
#--PRIVATE--include conf.d/yunohost_panel.conf.inc;
}

0 comments on commit dc0a1da

Please sign in to comment.