The Doctor's to-do list: Difference between revisions
From HacDC Wiki
No edit summary |
No edit summary |
||
Line 4: | Line 4: | ||
* Figure out a good build configuration for nginx | * Figure out a good build configuration for nginx | ||
** tentative: ./configure --prefix=/usr --conf-path=/etc/nginx --pid-path=/var/run --user=www --group=www --with-http_ssl_module --http-fastcgi-temp-path=/tmp/fastcgi_temp --with-cpu-opt=pentium --without-http_empty_gif_module, --with-http_stub_status_module | |||
* Test that particular build of nginx against a couple of PHP apps. | * Test that particular build of nginx against a couple of PHP apps. | ||
* Modify the existing nginx .Slackbuild script with the configuration I work out. | * Modify the existing [http://slackbuilds.org/repository/13.37/network/nginx/ nginx .Slackbuild script] with the configuration I work out. | ||
* Build nginx packages and check them into SVN. | * Build nginx packages and check them into SVN. | ||
* Figure out a good PHP build configuration that | * Figure out a good PHP build configuration that | ||
** runs under FastCGI | ** for optimal FastCGI compatibility, needs to be >= v5.3.3 | ||
** [http://interfacelab.com/nginx-php-fpm-apc-awesome/ runs under FastCGI] | |||
** includes SQLite | ** includes SQLite | ||
** includes MySQL | ** includes MySQL | ||
Line 24: | Line 26: | ||
** move sub-config files for nginx that represent PHP apps into and out of the /etc/nginx/conf.d directory | ** move sub-config files for nginx that represent PHP apps into and out of the /etc/nginx/conf.d directory | ||
** force nginx to reload its config files every time an app is (de-)configured | ** force nginx to reload its config files every time an app is (de-)configured | ||
* Get OpenSSL working | * [http://wiki.nginx.org/HttpSslModule Get OpenSSL working in nginx] | ||
* Write an initscript that | * Write an initscript that | ||
** checks for the presence of a node's SSL cert | ** checks for the presence of a node's SSL cert | ||
Line 42: | Line 44: | ||
** Create a crypto.cat Porteus package and check it into SVN | ** Create a crypto.cat Porteus package and check it into SVN | ||
* Install etherpad-lite on my development instance | * Install etherpad-lite on my development instance | ||
** requires node.js, for which there exists a Slackpack | ** [http://slackbuilds.org/repository/13.37/network/node/ requires node.js, for which there exists a Slackpack] | ||
*** build a Slackpack of node.js, convert into Porteus package, check everything into SVN | *** build a Slackpack of node.js, convert into Porteus package, check everything into SVN | ||
** write an initscript that can start up crypto.cat when called but not at boot | ** write an initscript that can start up crypto.cat when called but not at boot | ||
Line 48: | Line 50: | ||
** write a sub-config file for nginx that passes through the /pad URL to localhost:9001 | ** write a sub-config file for nginx that passes through the /pad URL to localhost:9001 | ||
** requires [http://npmjs.org NPM] | ** requires [http://npmjs.org NPM] | ||
*** that will need to be packaged and checked in separately, I think. | |||
*** run it in verbose mode to keep an eye on it | |||
*** if it installs more stuff, we should bundle the whole mess into the NPM Porteus package | |||
** really should run as an unprivileged user | ** really should run as an unprivileged user | ||
** really should listen on the loopback interface only | ** really should listen on the loopback interface only |
Revision as of 05:11, 3 September 2011
Stuff will be stricken out as I finish it. If anyone wants to jump in and help me with this, by all means do so, just put your initials at the end so I know who did what.
In no particular order, this is the stuff I want to accomplish over Labor Day weekend:
- Figure out a good build configuration for nginx
- tentative: ./configure --prefix=/usr --conf-path=/etc/nginx --pid-path=/var/run --user=www --group=www --with-http_ssl_module --http-fastcgi-temp-path=/tmp/fastcgi_temp --with-cpu-opt=pentium --without-http_empty_gif_module, --with-http_stub_status_module
- Test that particular build of nginx against a couple of PHP apps.
- Modify the existing nginx .Slackbuild script with the configuration I work out.
- Build nginx packages and check them into SVN.
- Figure out a good PHP build configuration that
- for optimal FastCGI compatibility, needs to be >= v5.3.3
- runs under FastCGI
- includes SQLite
- includes MySQL
- Test that particular build of PHP against a couple of apps.
- Write a .Slackbuild script for PHP with the configuration I work out.
- Build PHP packages and check them into SVN.
- Set up an account on the Porteus forums and post the link to our SVN repo.
- Develop a configuration for nginx that
- is lightweight
- somewhat optimized
- modular, so that each app has its own included config file
- Write a web app for the control panel that
- Can start and stop nginx on demand
- store its configuration in a database
- move sub-config files for nginx that represent PHP apps into and out of the /etc/nginx/conf.d directory
- force nginx to reload its config files every time an app is (de-)configured
- Get OpenSSL working in nginx
- Write an initscript that
- checks for the presence of a node's SSL cert
- terminates if one is found
- generates one using the IPv6 address of the node as its hostname if one isn't found
- Set Porteus up to set its hostname to the IPv6 address of the node.
- Write a PHP app that
- displays a "Hello, User!" message
- displays links to apps hosted on the node which happen to be active
- removes links to apps hosted on the node that are deactivated
- I don't know PHP... can we find someone who does?
- Would have to reference the SQLite database which keeps track of the active and inactive web apps and modifies the output accordingly
- has to be mobile-friendly
- Install crypto.cat on my development instance
- requires PHP
- will need its UI tweaked to be more mobile-friendly
- Create a crypto.cat Porteus package and check it into SVN
- Install etherpad-lite on my development instance
- requires node.js, for which there exists a Slackpack
- build a Slackpack of node.js, convert into Porteus package, check everything into SVN
- write an initscript that can start up crypto.cat when called but not at boot
- will have to be controlled by the control panel, store its configuration in a database
- write a sub-config file for nginx that passes through the /pad URL to localhost:9001
- requires NPM
- that will need to be packaged and checked in separately, I think.
- run it in verbose mode to keep an eye on it
- if it installs more stuff, we should bundle the whole mess into the NPM Porteus package
- really should run as an unprivileged user
- really should listen on the loopback interface only
- pay attention to the reverse-proxy howto for nginx!
- have to start it by hand a few times to figure out how to automate and package it
- requires node.js, for which there exists a Slackpack
- install status.neet on my development instance
- requires PHP, MySQL
- nginx must have URL rewriting available
- PHP must have support for Curl, XMLwriter, MySQL, GD, mbstring, gettext (all required for status.net), SQLite (to read configuration databases)
- nginx installation instructions!
- will need to pre-configure it for security and usability
- need to make the mobile skin the default and erase the others to free up disk space
- will need to write a sub-config file for nginx
- configure for longer messages - 560 characters? 700 characters
- configure to make it easy to set up accounts on a node - no e-mail verification
- enable image upload and display
- Write a dependency manager for apps
- some web apps require MySQL, some don't
- only start MySQL if it's not running already for the ones that don't
- Write a web app that (de-)configures gateway mode for babeld. I think it's a matter of pushing a route to 0.0.0.0 or not, have to read up on it.