aboutsummaryrefslogtreecommitdiffstats
path: root/.openshift
diff options
context:
space:
mode:
Diffstat (limited to '.openshift')
-rw-r--r--.openshift/README.md94
-rw-r--r--.openshift/action_hooks/README.md3
-rwxr-xr-x.openshift/action_hooks/deploy185
-rw-r--r--.openshift/cron/README.cron27
-rw-r--r--.openshift/cron/daily/.gitignore0
-rw-r--r--.openshift/cron/hourly/.gitignore0
-rw-r--r--.openshift/cron/minutely/.gitignore0
-rw-r--r--.openshift/cron/monthly/.gitignore0
-rw-r--r--.openshift/cron/weekly/README16
-rw-r--r--.openshift/cron/weekly/chrono.dat1
-rwxr-xr-x.openshift/cron/weekly/chronograph3
-rw-r--r--.openshift/cron/weekly/jobs.allow12
-rw-r--r--.openshift/cron/weekly/jobs.deny7
-rw-r--r--.openshift/markers/README.md4
-rw-r--r--.openshift/pear.txt0
15 files changed, 352 insertions, 0 deletions
diff --git a/.openshift/README.md b/.openshift/README.md
new file mode 100644
index 000000000..535b9bdd1
--- /dev/null
+++ b/.openshift/README.md
@@ -0,0 +1,94 @@
+#Hubzilla on OpenShift
+You will notice a new .openshift folder when you fetch from upstream, i.e. from https://github.com/redmatrix/hubzilla.git , which contains a deploy script to set up Hubzilla on OpenShift.
+
+Create an account on OpenShift, then use the registration e-mail and password to create your first Hubzilla instance. Install git and RedHat's command line tools - rhc - if you have not already done so.
+
+```
+rhc app-create your_app_name php-5.4 mysql-5.5 cron phpmyadmin --namespace your_domain --from-code https://github.com/redmatrix/hubzilla.git -l your@email.address -p your_account_password
+```
+
+Make a note of the database username and password OpenShift creates for your instance, and use these at https://your_app_name-your_domain.rhcloud.com/ to complete the setup.
+
+NOTE: PostgreSQL is NOT supported by the deploy script yet.
+
+Update
+To update, consider your own workflow first. I have forked Hubzilla code into my GitHub account to be able to try things out, this remote repo is called origin. Here is how I fetch new code from upstream, merge into my local repo, then push the updated code both into origin and the remote repo called openshift.
+
+```
+git fetch upstream;git checkout master;git merge upstream/master;git push origin;git push openshift HEAD
+```
+
+##Administration
+Symptoms of need for MySQL database administration are:
+- you can visit your domain and see the Hubzilla frontpage, but trying to login throws you back to login. This can mean your session table is marked as crashed.
+- you can login, but your channel posts are not visible. This can mean your item table is marked as crashed.
+- you can login and you can see your channel posts, but apparently nobody is getting your posts, comments, likes and so on. This can mean your outq table is marked as crashed.
+
+You can check your OpenShift logs by doing
+
+```
+rhc tail -a your_app_name -n your_domain -l your@email.address -p your_account_password
+```
+
+and you might be able to confirm the above suspicions about crashed tables, or other problems you need to fix.
+
+###How to fix crashed tables in MySQL
+Using MySQL and the MyISAM database engine can result in table indexes coming out of sync, and you have at least two options for fixing tables marked as crashed.
+- Use the database username and password OpenShift creates for your instance at https://your_app_name-your_domain.rhcloud.com/phpmyadmin/ to login via the web into your phpMyAdmin web interface, click your database in the left column, in the right column scroll down to the bottom of the list of tables and click the checkbox for marking all tables, then select Check tables from the drop down menu. This will check the tables for problems, and you can then checkmark only those tables with problems, and select Repair table from the same drop down menu at the bottom.
+- You can login to your instance with SSH - see OpenShift for details - then
+
+```
+cd mysql/data/your_database
+myisamchk -r *.MYI
+```
+
+or if you get
+
+```
+Can't create new tempfile
+```
+
+check your OpenShift's gear quota with
+
+```
+quota -gus
+```
+
+and if you are short on space, then locally (not SSH) do
+
+```
+rhc app-tidy your_app_name -l your_login -p your_password
+```
+
+to have rhc delete temporary files and OpenShift logs to free space first, then check the size of your local repo dir and execute
+
+```
+git gc
+```
+
+against it and check the size again, and then to minimize your remote repo connect via SSH to your application gear and execute the same command against it by changing to the remote repo directory - your repo should be in
+
+```
+~/git/your_app_name.git
+```
+
+(if not, do find -size +1M to find it), then do
+
+```
+cd ~/mysql/data/yourdatabase
+myisamchk -r -v -f*.MYI
+```
+
+and hopefully your database tables are now okay.
+
+##NOTES
+Note 1: definitely DO turn off feeds and discovery by default if you are on the Free or Bronze plan on OpenShift with a single 1Gb gear by visiting https://your-app-name.rhcloud.com/admin/site when logged in as administrator of your Hubzilla site.
+Note 2: DO add the above defaults into the deploy script.
+Note 3: DO add git gc to the deploy script to clean up git.
+Note 4: MAYBE DO add myisamchk - only checking? to the end of the deploy script.
+
+The OpenShift `php` cartridge documentation can be found at:
+http://openshift.github.io/documentation/oo_cartridge_guide.html#php
+
+For information about .openshift directory, consult the documentation:
+http://openshift.github.io/documentation/oo_user_guide.html#the-openshift-directory
diff --git a/.openshift/action_hooks/README.md b/.openshift/action_hooks/README.md
new file mode 100644
index 000000000..541319581
--- /dev/null
+++ b/.openshift/action_hooks/README.md
@@ -0,0 +1,3 @@
+For information about action hooks, consult the documentation:
+
+http://openshift.github.io/documentation/oo_user_guide.html#action-hooks
diff --git a/.openshift/action_hooks/deploy b/.openshift/action_hooks/deploy
new file mode 100755
index 000000000..dafde2d69
--- /dev/null
+++ b/.openshift/action_hooks/deploy
@@ -0,0 +1,185 @@
+#!/bin/bash
+# This deploy hook gets executed after dependencies are resolved and the
+# build hook has been run but before the application has been started back
+# up again. This script gets executed directly, so it could be python, php,
+# ruby, etc.
+
+# Bash help: http://www.panix.com/~elflord/unix/bash-tute.html
+
+# For information about action hooks supported by OpenShift, consult the documentation:
+# http://openshift.github.io/documentation/oo_user_guide.html#the-openshift-directory
+
+####
+
+# Hubzilla specific deploy script
+
+# Place this file in /.openshift/action_hooks/ (The .openshift folder will be in the root of your repo)
+# The file name should be "deploy" such that you have:
+# .openshift/action_hooks/deploy
+
+# Conventions: Vars in curley braces have the slash after implied so no need to add it.
+# e.g. ${OPENSHIFT_REPO_DIR}php/foobar = /repo/php/foobar
+# See all OpenShift vars here:
+# https://www.openshift.com/developers/openshift-environment-variables
+
+# HME - NOTE - leftover from original openshift-drupal-deploy
+# In config.php you can leverage the enviroment variables like this:
+# // Define env vars.
+# if (array_key_exists('OPENSHIFT_APP_NAME', $_SERVER)) {
+# $src = $_SERVER;
+# } else {
+# $src = $_ENV;
+# }
+#
+# $conf["file_private_path"] = $src['OPENSHIFT_DATA_DIR'] . "private";
+# $conf["file_temporary_path"] = $src['OPENSHIFT_DATA_DIR'] . "tmp";
+
+
+####
+
+# Start Deploy
+
+echo "Starting Deploy..."
+
+# Let's create the Hubzilla files directory in the Openshift data folder ($OPENSHIFT_DATA_DIR).
+
+echo "Check for the files directory called store, if not created - create it"
+
+if [ ! -d ${OPENSHIFT_DATA_DIR}store ]; then
+mkdir -p ${OPENSHIFT_DATA_DIR}"store/[data]/smarty3"
+echo "Done creating files directory"
+
+else
+
+echo "The files directory called store already exists"
+
+fi
+
+####
+
+# Set permissions on the files directory.
+
+echo "Now chmod 777 -R files"
+
+chmod -R 777 ${OPENSHIFT_DATA_DIR}store
+
+echo "chmod done, permissions set to 777"
+
+####
+
+# Symlink our files folder to the repo.
+
+# Note the "php" directory below seems to be the best way to serve OpenShift files.
+# This is good as that allows us for directories one level above such as tmp and private
+
+echo "Create sym links for writeable directories"
+
+ln -sf ${OPENSHIFT_DATA_DIR}store ${OPENSHIFT_REPO_DIR}store
+
+echo "Files sym links created"
+
+####
+
+# Copy .htconfig.php from the repo, rename it and place it in the data directory.
+# if it's there already, skip it.
+
+if [ ! -f ${OPENSHIFT_DATA_DIR}.htconfig.php ];
+
+then
+
+cp ${OPENSHIFT_REPO_DIR}.htconfig.php ${OPENSHIFT_DATA_DIR}.htconfig.php
+
+echo ".htconfig.php copied."
+
+else
+
+echo "Looks like the .htconfig.php file is already there, we won't overwrite it."
+
+fi
+
+####
+
+# symlink the .htconfig.php file.
+
+echo "Create sym link for .htconfig.php"
+
+ln -sf ${OPENSHIFT_DATA_DIR}.htconfig.php ${OPENSHIFT_REPO_DIR}.htconfig.php
+
+echo ".htconfig.php symlink created"
+
+####
+# Copy .htaccess from the repo, rename it and place it in the data directory.
+# if it's there already, skip it.
+
+if [ ! -f ${OPENSHIFT_DATA_DIR}.htaccess ];
+
+then
+
+cp ${OPENSHIFT_REPO_DIR}.htaccess ${OPENSHIFT_DATA_DIR}.htaccess
+
+echo ".htaccess copied."
+
+else
+
+echo "Looks like the .htaccess file is already there, we won't overwrite it."
+
+fi
+
+####
+
+# symlink the .htaccess file.
+
+echo "Create sym link for .htaccess"
+
+ln -sf ${OPENSHIFT_DATA_DIR}.htaccess ${OPENSHIFT_REPO_DIR}.htaccess
+
+echo ".htaccess symlink created"
+
+####
+
+echo "Check for the poller at .openshift/cron/minutely/poller , if not created - create it"
+
+if [ ! -f ${OPENSHIFT_REPO_DIR}.openshift/cron/minutely/poller ]; then
+printf '%s\n' '#!/bin/bash' 'if [ ! -f $OPENSHIFT_DATA_DIR/last_run ]; then' ' touch $OPENSHIFT_DATA_DIR/last_run' 'fi' 'if [[ $(find $OPENSHIFT_DATA_DIR/last_run -mmin +9) ]]; then #run every 10 mins' ' rm -f $OPENSHIFT_DATA_DIR/last_run' ' touch $OPENSHIFT_DATA_DIR/last_run' ' # The command(s) that you want to run every 10 minutes' 'cd /var/lib/openshift/${OPENSHIFT_APP_UUID}/app-root/repo; /opt/rh/php54/root/usr/bin/php include/poller.php' 'fi' >${OPENSHIFT_REPO_DIR}.openshift/cron/minutely/poller
+echo "Done creating file .openshift/cron/minutely/poller"
+
+else
+
+echo "The poller already exists"
+
+fi
+
+####
+
+# Set permissions on the poller script to make it executable.
+
+echo "Now chmod 777 -R poller"
+
+chmod -R 777 ${OPENSHIFT_REPO_DIR}.openshift/cron/minutely/poller
+
+echo "chmod done, permissions set to 777 on poller script."
+
+####
+
+### echo "Check for the hot deploy marker at .openshift/markers/hot_deploy , if not created - create it"
+
+### if [ ! -f ${OPENSHIFT_REPO_DIR}.openshift/markers/hot_deploy ]; then
+
+### touch ${OPENSHIFT_REPO_DIR}.openshift/markers/hot_deploy
+
+### echo "Done creating file .openshift/markers/hot_deploy"
+
+### else
+
+### echo "The hot deploy marker already exists"
+
+### fi
+
+####
+
+# Hubzilla configuration - changes to default settings
+# to make Hubzilla on OpenShift a more pleasant experience
+cd ${OPENSHIFT_REPO_DIR}
+util/config system expire_delivery_reports 3
+util/config system feed_contacts 0
+util/config system disable_discover_tab 1
diff --git a/.openshift/cron/README.cron b/.openshift/cron/README.cron
new file mode 100644
index 000000000..ac77f7872
--- /dev/null
+++ b/.openshift/cron/README.cron
@@ -0,0 +1,27 @@
+Run scripts or jobs on a periodic basis
+=======================================
+Any scripts or jobs added to the minutely, hourly, daily, weekly or monthly
+directories will be run on a scheduled basis (frequency is as indicated by the
+name of the directory) using run-parts.
+
+run-parts ignores any files that are hidden or dotfiles (.*) or backup
+files (*~ or *,) or named *.{rpmsave,rpmorig,rpmnew,swp,cfsaved}
+
+The presence of two specially named files jobs.deny and jobs.allow controls
+how run-parts executes your scripts/jobs.
+ jobs.deny ===> Prevents specific scripts or jobs from being executed.
+ jobs.allow ===> Only execute the named scripts or jobs (all other/non-named
+ scripts that exist in this directory are ignored).
+
+The principles of jobs.deny and jobs.allow are the same as those of cron.deny
+and cron.allow and are described in detail at:
+ http://docs.redhat.com/docs/en-US/Red_Hat_Enterprise_Linux/6/html/Deployment_Guide/ch-Automating_System_Tasks.html#s2-autotasks-cron-access
+
+See: man crontab or above link for more details and see the the weekly/
+ directory for an example.
+
+PLEASE NOTE: The Cron cartridge must be installed in order to run the configured jobs.
+
+For more information about cron, consult the documentation:
+http://openshift.github.io/documentation/oo_cartridge_guide.html#cron
+http://openshift.github.io/documentation/oo_user_guide.html#cron
diff --git a/.openshift/cron/daily/.gitignore b/.openshift/cron/daily/.gitignore
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/.openshift/cron/daily/.gitignore
diff --git a/.openshift/cron/hourly/.gitignore b/.openshift/cron/hourly/.gitignore
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/.openshift/cron/hourly/.gitignore
diff --git a/.openshift/cron/minutely/.gitignore b/.openshift/cron/minutely/.gitignore
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/.openshift/cron/minutely/.gitignore
diff --git a/.openshift/cron/monthly/.gitignore b/.openshift/cron/monthly/.gitignore
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/.openshift/cron/monthly/.gitignore
diff --git a/.openshift/cron/weekly/README b/.openshift/cron/weekly/README
new file mode 100644
index 000000000..7c3e659fe
--- /dev/null
+++ b/.openshift/cron/weekly/README
@@ -0,0 +1,16 @@
+Run scripts or jobs on a weekly basis
+=====================================
+Any scripts or jobs added to this directory will be run on a scheduled basis
+(weekly) using run-parts.
+
+run-parts ignores any files that are hidden or dotfiles (.*) or backup
+files (*~ or *,) or named *.{rpmsave,rpmorig,rpmnew,swp,cfsaved} and handles
+the files named jobs.deny and jobs.allow specially.
+
+In this specific example, the chronograph script is the only script or job file
+executed on a weekly basis (due to white-listing it in jobs.allow). And the
+README and chrono.dat file are ignored either as a result of being black-listed
+in jobs.deny or because they are NOT white-listed in the jobs.allow file.
+
+For more details, please see ../README.cron file.
+
diff --git a/.openshift/cron/weekly/chrono.dat b/.openshift/cron/weekly/chrono.dat
new file mode 100644
index 000000000..fc4abb87c
--- /dev/null
+++ b/.openshift/cron/weekly/chrono.dat
@@ -0,0 +1 @@
+Time And Relative D...n In Execution (Open)Shift!
diff --git a/.openshift/cron/weekly/chronograph b/.openshift/cron/weekly/chronograph
new file mode 100755
index 000000000..61de949f4
--- /dev/null
+++ b/.openshift/cron/weekly/chronograph
@@ -0,0 +1,3 @@
+#!/bin/bash
+
+echo "`date`: `cat $(dirname \"$0\")/chrono.dat`"
diff --git a/.openshift/cron/weekly/jobs.allow b/.openshift/cron/weekly/jobs.allow
new file mode 100644
index 000000000..8d32abc70
--- /dev/null
+++ b/.openshift/cron/weekly/jobs.allow
@@ -0,0 +1,12 @@
+#
+# Script or job files listed in here (one entry per line) will be
+# executed on a weekly-basis.
+#
+# Example: The chronograph script will be executed weekly but the README
+# and chrono.dat files in this directory will be ignored.
+#
+# The README file is actually ignored due to the entry in the
+# jobs.deny which is checked before jobs.allow (this file).
+#
+chronograph
+
diff --git a/.openshift/cron/weekly/jobs.deny b/.openshift/cron/weekly/jobs.deny
new file mode 100644
index 000000000..73c945008
--- /dev/null
+++ b/.openshift/cron/weekly/jobs.deny
@@ -0,0 +1,7 @@
+#
+# Any script or job files listed in here (one entry per line) will NOT be
+# executed (read as ignored by run-parts).
+#
+
+README
+
diff --git a/.openshift/markers/README.md b/.openshift/markers/README.md
new file mode 100644
index 000000000..8daca526c
--- /dev/null
+++ b/.openshift/markers/README.md
@@ -0,0 +1,4 @@
+For information about markers, consult the documentation:
+
+http://openshift.github.io/documentation/oo_user_guide.html#markers
+http://openshift.github.io/documentation/oo_cartridge_guide.html#php-markers
diff --git a/.openshift/pear.txt b/.openshift/pear.txt
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/.openshift/pear.txt