peterkeen / dokuen Goto Github PK
View Code? Open in Web Editor NEWA personal PaaS for mac and linux
A personal PaaS for mac and linux
Logs are getting swallowed from start_app
. Need to capture and redirect them.
So, I tried installing it on an Ubuntu-server 12.04 LTS. Everything went fine, except on dokuen create --aplication=name
I followed standard installation procedure, as detailed in the README.
Please find the full command and error log below.
$ ssh git@ip_address dokuen create --application=test
[email protected]'s password:
/var/lib/gems/1.8/gems/dokuen-0.0.11/lib/dokuen/application.rb:57:in `create': undefined method `dokuen_dir' for nil:NilClass (NoMethodError)
from /var/lib/gems/1.8/gems/dokuen-0.0.11/lib/dokuen/cli.rb:44:in `create'
from /var/lib/gems/1.8/gems/thor-0.15.2/lib/thor/task.rb:27:in `send'
from /var/lib/gems/1.8/gems/thor-0.15.2/lib/thor/task.rb:27:in `run'
from /var/lib/gems/1.8/gems/thor-0.15.2/lib/thor/invocation.rb:120:in `invoke_task'
from /var/lib/gems/1.8/gems/thor-0.15.2/lib/thor.rb:275:in `dispatch'
from /var/lib/gems/1.8/gems/thor-0.15.2/lib/thor/base.rb:408:in `start'
from /var/lib/gems/1.8/gems/dokuen-0.0.11/bin/dokuen:15
from /usr/local/bin/dokuen:19:in `load'
from /usr/local/bin/dokuen:19
$
I am at your disposal for any further test or information.
The launchdaemon config has a hardcoded username. Make setup ask for this name and write to _common. Let it be overridden.
ddollar/mason recently went to 0.1.0 with changes needed. Update the gemfile and cut a new release and remove that stuff from the README.
Gitolite doesn't add anything dokuen can't do itself. The only thing it does is manage the repos and the hooks and it kind of gets in the way, since we already have a create
command.
This needs to do the following:
authorized_keys
when changes to ssh keys happendokuen
directory, there will be a repositories
directory.Allow for app-specific ssl certificates. I don't know how that plays with CNAMES.
Add-ons would be cool. The basic idea would be to register something with Dokuen that looks like a buildpack, but contains "provision" and "destroy" scripts.
If run_command
contains quotes of any variety, ssh aborts with FATAL: suspicious characters loitering about '<command>'
. I'm not really sure what this is about.
Config vars should be versioned just like code releases. This probably means the env
dir gets timestamped directories just like the release
dir.
env
dirs with unchanged variables copied forwardversions
versions
directory, which then contains two symlinks. app
points at the timestamped code release in releases
, env
points at the timestamped env in env
. It also contains one real directory named procs
, which is where pidfiles live (moved from the code release directory)current
symlink points at the current version. The previous
symlink can probably go away.In the wrapper, instead of calling load_env
immediately after daemonize!
, call it at the top of run_loop
. This way, when the subprocess restarts it gets a fresh copy of the env.
Hi, I've been having some real trouble getting dokuen working - I've tried a couple of times and I'm getting stuck each time now on
$ ssh git@myserver dokuen create --application=<my application>
FATAL: unknown gitolite sub-command
I'm hoping someone will have some advice - I've tried everything I can think of! (see below for my steps so far)
Host System: Mac OS X 10.8 (Mountain Lion)
git
user (using the OS X users GUI)rvm
rvm install 1.9.3-p194
git
user: $ login git
$ cd ~; git clone git://github.com/sitaramc/gitolite
brew install nginx
gem install dokuen
'dokuen' => 1,
to the COMMANDS array in /Users/git/.gitolite.rc
# ------------------
at the end of the file: $ENV{GIT_EXEC_PATH} = "/usr/libexec/git-core";
GIT_CONFIG_KEYS => 'hooks.pre'
(or you could just put '*'
, if you're feeling permissive)/Users/git/.profile
included a line to add some bits to my PATH: PATH=$PATH:$HOME/bin:/usr/local/bin
~/.ssh/config
to allow access using a specific key (see below)git clone mygit:gitolite-admin.git
$ cd ~/Projects/mywebapp; ssh mygit dokuen create --application=mywebapp
client-computer$ ssh mygit help
doesn't list dokuen
.dokuen
binary exists in the right place (one install it wasn't there): ls -la /Users/git/gitolite/src/commands/ | grep dokuen
- yup, it does.dokuen
executable was owned by root
, not by git
, so I changed that sudo chown git /Users/git/gitolite/src/commands/dokuen
. No change.I really hope you can help out, this seems like it should be so easy!
Let me know if there's anything else I can help with.
Thanks,
JP
(The line in my ~/.ssh/config
)
Host <hostname, eg 'mygit'>
user git
Hostname myserver
IdentityFile "/Users/me/.ssh/my_key.pub"
IdentitiesOnly yes
Applications should have some amount of separation from each other and other parts of the host system. Create a user for each application automatically. This should be configurable, in so far as you can turn it on and off and also configure the username pattern.
This should just amount to writing out a different thing instead of a LaunchDaemon. On ubuntu, an upstart. On other machines, an init.d style script probably.
If FORWARD_HTTP and USE_SSL are both set, set up an nginx listener on port 80 that redirects to https.
Add an env var ADDITIONAL_DOMAINS that contains a comma separated list of domain names to attach to the server config in nginx.
Mason is great but it does some weird things with buildpacks. Specifically, it clones buildpacks into $HOME/.mason
, which is inconvenient wrt permissions. Ideally we could specify where to find and clone buildpacks and make that directory sticky group writable, but failing that we may need to incorporate the things that Mason does directly into Dokuen.
It fails to shut down the sub processes because it assumes the pidfile is just an integer instead of being a YAML file. Also, add a generalized "shutdown" command that shuts down everything. Basically the opposite of "boot". Also, a "restart" command would be nice.
For some reason rails processes don't react to SIGTERM. Make this configurable.
The only people who should be able to push to a repo or run commands are writers for that repo. It should reject everyone else. Gitolite provides facilites for this kind of access control. See Easy.pm
Also apps should either run as that user or an app-specific user. Look into creating new users at app creation time.
Write a section that describes how dokuen does what it does.
Sudo access is way too broad right now, since the git user can basically run anything as a sudo command via dokuen run_command
.
Isolate the two things that need sudo into their own scripts:
This is basically what I had in the rough scripts.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.