Clinton Ebadi [Fri, 15 May 2015 19:37:14 +0000 (15:37 -0400)]
Fix typo in config
Clinton Ebadi [Fri, 15 May 2015 19:33:13 +0000 (15:33 -0400)]
Move mailman to mccarthy.hcoop.net
Clinton Ebadi [Fri, 15 May 2015 18:32:30 +0000 (14:32 -0400)]
don't complain about $user.daemon missing a domtool dir
Not committed to this yet, but current hcoop.daemon exists with no
path or other permissions simply to allow queries to domtool and
management of vmail accounts. Ignore lack of .domtool directory.
Clinton Ebadi [Thu, 14 May 2015 05:04:12 +0000 (01:04 -0400)]
Enable mccarthy as mailnode for all users
Clinton Ebadi [Tue, 12 May 2015 22:30:33 +0000 (18:30 -0400)]
Set fritz as default DNS master, make deleuze a default slave
ns1.hcoop.net is moving to fritz, set as default internalMaster. Keep
deleuze as a default slave for transition as some members are using
deleuze.hcoop.net at their registrar.
Clinton Ebadi [Tue, 12 May 2015 22:24:27 +0000 (18:24 -0400)]
Add mccarthy, enable for mail use by users with priv mail
Clinton Ebadi [Sat, 18 Apr 2015 22:25:37 +0000 (18:25 -0400)]
systemd service files for server/slave
Welcome to the future, whether we like or not.
Service files should provide functionality similar to the current init
scripts. Current no service monitoring is implemented (if possible,
regularly `domtool-admin ping'ing service and restarting if no response
would be nice).
/var/log/domtool.log is gone, replaced by use of the system journal.
Clinton Ebadi [Wed, 4 Mar 2015 06:38:47 +0000 (01:38 -0500)]
Add ProxyPreserveHost apache directive
* Link other proxy directives to apache docs while I'm at it.
Clinton Ebadi [Thu, 1 Jan 2015 04:19:51 +0000 (23:19 -0500)]
Add fritz as a dns node and enable as a slave
Master DNS will be moving to fritz in the near future.
Clinton Ebadi [Thu, 1 Jan 2015 04:13:47 +0000 (23:13 -0500)]
Update proxy.dtl with new proxy_reverse_target type
Clinton Ebadi [Tue, 25 Nov 2014 01:24:33 +0000 (20:24 -0500)]
Release
Clinton Ebadi [Tue, 25 Nov 2014 01:24:21 +0000 (20:24 -0500)]
Support ! as a ProxyPass target
Reported by notd, ProxyPass can take ! to indicate not to proxy
anything under a path. Split proxy_target and proxy_reverse_target
types since ProxyPassReverse does not allow ! as a target.
Clinton Ebadi [Tue, 7 Oct 2014 03:21:57 +0000 (23:21 -0400)]
Release
Clinton Ebadi [Tue, 7 Oct 2014 03:17:40 +0000 (23:17 -0400)]
portal: return success/failure of changing vmail password
I hear it's useful to tell the difference between failure and success.
Clinton Ebadi [Mon, 6 Oct 2014 04:13:45 +0000 (00:13 -0400)]
Release
Clinton Ebadi [Mon, 6 Oct 2014 04:13:29 +0000 (00:13 -0400)]
apt: Handle Description-en replacing Description in apt-cache output
Ideally we'd care about languages other than English, but this works.
Clinton Ebadi [Mon, 6 Oct 2014 03:45:12 +0000 (23:45 -0400)]
Release
Clinton Ebadi [Mon, 6 Oct 2014 03:44:32 +0000 (23:44 -0400)]
reset error state before generating basis library
Errors occuring during publishing in the dispatcher can leak into the
next run. Reset the error state in basis to avoid returning an empty
basis library now that it is evaluated at each MsgConfig.
This may be the wrong solution -- not sure why errors get to hang
around after a run anyway.
Clinton Ebadi [Mon, 6 Oct 2014 03:16:04 +0000 (23:16 -0400)]
scripts: Fix lazy chown syntax
user.group doesn't work when user has a dot in it. Use : in
domtool-addcert, and update other scripts for consistency.
Clinton Ebadi [Mon, 6 Oct 2014 03:14:38 +0000 (23:14 -0400)]
vmailpasswd: fix bad interpreter
Clinton Ebadi [Mon, 6 Oct 2014 03:14:25 +0000 (23:14 -0400)]
portal: Use readLine and not getPass when stdin is not a terminal
It is way harder than neccessary to make the portal call
domtool-portal when it spews output. Just assume input produced via a
pipe is from a program that knows what it is doing.
Clinton Ebadi [Mon, 6 Oct 2014 03:13:06 +0000 (23:13 -0400)]
client: function to check if stdin is a tty
Clinton Ebadi [Sun, 5 Oct 2014 00:48:39 +0000 (20:48 -0400)]
Client.getPass: catch syserror inval when detecting non-tty use
libc in Debian before Jessie returns einval instead of enotty
Clinton Ebadi [Fri, 9 May 2014 09:50:34 +0000 (05:50 -0400)]
Remove mccarthy as node before release
It's not actually ready yet, and we have to release now.
Clinton Ebadi [Fri, 9 May 2014 09:43:31 +0000 (05:43 -0400)]
Change DefaultAliasSource to $user@hcoop.net, add defaultMailUser extern
* The type checker can be annoying, but I am not capable of the feats
of hacking required to make it expand externs at type checking
time (nor am I certain that's even a good idea)
* Feature idea: allow binding a name passed to registerFunction in
multiple `extern val' declarations. Extern already assumes the
extern will be correctly type, so there's no additional peril.
Clinton Ebadi [Fri, 9 May 2014 08:41:29 +0000 (04:41 -0400)]
Client.getpass: allow use on non-tty devices
Warn user the password will be echoed just in case. This allows
getpass to be used with input piped to it (e.g. from the hcoop members
portal).
Clinton Ebadi [Fri, 9 May 2014 08:40:31 +0000 (04:40 -0400)]
Add vmail command for changing password when you know the current password
Not 100% sure if this the best way, but the members portal was tied to
*the* mail node, which is not good to begin with, and breaks when
there are multiple mail nodes.
* Replaces vmailpasswd.c, which is an awful program (passed password on
the command line revealing it to `ps' and only supports a local
filesystem userdb).
* Restricted to users with the priv `vmail' for now, and only used by
the portal. Not much worth in exposing generally it seems (vmail
users cannot login to any shell machines, at least at hcoop)
* Includes helper python program to run crypt() (better than C at
least...)
* New function to parse the userdb into a StringMap (a better
approach is possible, similar to the Vmail.list). Will be used to
compile the database for Dovecot later.
* New binary `domtool-portal' to expose replacement vmailpasswd command
Clinton Ebadi [Tue, 6 May 2014 23:54:09 +0000 (19:54 -0400)]
Manage spamassassin preferences in shared space
Clinton Ebadi [Tue, 6 May 2014 23:52:41 +0000 (19:52 -0400)]
Disentangle vmail from the mail node, Prepare for dovecot support
* Use new Slave.run and Connect.commandWorker where possible
* Always reload vmail db in worker, never in dispatcher
* Move non-courier-specific configuration variables to Config.Vmail.
The master userdb is still managed using courier-authlib-userdb.
* Manage vmail db in afs, syncing as needed.
Clinton Ebadi [Tue, 6 May 2014 23:20:29 +0000 (19:20 -0400)]
domtool-config: print errors on stderr, return failure code, export vmaildb
Clinton Ebadi [Tue, 6 May 2014 23:19:17 +0000 (19:19 -0400)]
Slave.run: run a command using Unix.execute
Similar to Slave.shell, only it passes the arguments list directly to
Unix.execute.
Clinton Ebadi [Tue, 6 May 2014 23:17:46 +0000 (19:17 -0400)]
Connection utilities (or: copying and pasting code is bad)
Finally get around to factoring out functions to connect to the
dispatcher, connect to a worker, and send a "simple" message to
workers (one where MsgOk/MsgError are the only valid replies).
Clinton Ebadi [Fri, 2 May 2014 03:47:31 +0000 (23:47 -0400)]
mod_auth_kerb: Enabled KDC Verification and Negotiate
Every <Location> that enables kerberos auth has to include the
keytab/service declarations. Since we're verifying the KDC, allow
gssapi negotiate.
Clinton Ebadi [Tue, 29 Apr 2014 07:14:11 +0000 (03:14 -0400)]
Add mccarthy as admin web server and mail node
Clinton Ebadi [Tue, 29 Apr 2014 07:10:21 +0000 (03:10 -0400)]
New `make install_serverslave' target, don't use sudo in make install_{server,slave}
The dispatcher node is likely also running a worker node, and both
must be stopped before installation or else one of them segfaults when
its binary is overwritten.
Clinton Ebadi [Tue, 29 Apr 2014 01:12:44 +0000 (21:12 -0400)]
Fix domtool-addcert for when user running is not in `wheel'
Domtool on deleuze assumed admin users would be in group
`wheel'. This is no longer true. Instead, make the CA readable only by
root, generate the new keys and certs into a non-afs temp directory,
and then move everything into afs afterward.
Clinton Ebadi [Mon, 28 Apr 2014 23:23:43 +0000 (19:23 -0400)]
Unify web_node/default_node, and provide a default for WebPlaces
Clinton Ebadi [Mon, 28 Apr 2014 23:23:26 +0000 (19:23 -0400)]
Fix typo in defaults
Clinton Ebadi [Sun, 27 Apr 2014 07:47:41 +0000 (03:47 -0400)]
Move more bind config into domtool, remove hardcoded /var/domtool references
dns_master_node and dns_slave_nodes do not need to be defined in SML,
and were removed.
Instead of checking Config.Bind.masterNode and skipping generating a
zone file on bind slaves, don't generate the incorrect soa.conf at
all (same effect, but the correct way).
Clinton Ebadi [Sun, 27 Apr 2014 02:11:24 +0000 (22:11 -0400)]
Evaluate `val' and `var' bindings in the environment in which they were defined
Until this change, you could create a program such as:
val mine : your_domain = "mydomain.org";
val not_mine = mine;
val mine = "not-my-domain.org";
dom not_mine with end;
And domtool would happily configure "not-mydomain.org" for you.
Clinton Ebadi [Sun, 27 Apr 2014 01:19:29 +0000 (21:19 -0400)]
Reduce toplevel environment decls and allow them in user config
The root of the dynamic environment is passed separately to Eval.exec'
to allow user config to re-declare dynamics (like regular vals). This
uncovered (and perpetuates) a bug with process DVal/DEnv:
val foo = "foo";
val bar = foo;
val foo = "bar";
When bar is expanded, it now has the value "bar" instead of
"foo", which is wrong.
Clinton Ebadi [Sat, 26 Apr 2014 00:05:10 +0000 (20:05 -0400)]
merge toplevel-dynamic-environment
Clinton Ebadi [Sat, 26 Apr 2014 00:01:51 +0000 (20:01 -0400)]
Example config file for a single-machine development setup
Clinton Ebadi [Fri, 25 Apr 2014 23:25:13 +0000 (19:25 -0400)]
bootstrap: run server to add first user
Clinton Ebadi [Fri, 25 Apr 2014 23:19:48 +0000 (19:19 -0400)]
domtool-config: export truststore
Clinton Ebadi [Fri, 25 Apr 2014 22:58:03 +0000 (18:58 -0400)]
Remove Config.{dispatcher,defaultNode}
defaultNode was punned to dispatcherName, and dispatcher relied on
other values in the file. I.e. you had to set all three to change the
dispatcher! Consolidate all into dispatcherName.
Clinton Ebadi [Fri, 25 Apr 2014 22:02:31 +0000 (18:02 -0400)]
Build domtool-config by default
Clinton Ebadi [Fri, 25 Apr 2014 22:02:12 +0000 (18:02 -0400)]
boostrap: fail on error, create cert for local machine
Clinton Ebadi [Fri, 25 Apr 2014 22:01:34 +0000 (18:01 -0400)]
bootstrap: ensure ca config exists before continuing
Clinton Ebadi [Fri, 25 Apr 2014 21:48:42 +0000 (17:48 -0400)]
domtool-adduser: use domtool-config to find ca
Clinton Ebadi [Fri, 25 Apr 2014 21:32:50 +0000 (17:32 -0400)]
domtool-addcert: use domtool-config, support non-afs cert/key dirs
Removed `chown -R domtool.nogroup' calls since they are meaningless in
afs and incorrect on normal file systems. chown -R the key dir to the
user.nogroup unless `-unsafe' is passed, which allows the creation of
useless keys (the user running the script can read the key instead of
the intended user, which is ok for development).
Still needs improvement.
Clinton Ebadi [Fri, 25 Apr 2014 21:10:37 +0000 (17:10 -0400)]
scripts: use getent instead of hardcoding an afs homedir
Clinton Ebadi [Fri, 25 Apr 2014 21:10:07 +0000 (17:10 -0400)]
Scripts to bootstrap a development domtool environment
Clinton Ebadi [Thu, 24 Apr 2014 05:39:26 +0000 (01:39 -0400)]
domtool-config: dump nodes, site domain, and certificate paths
Clinton Ebadi [Thu, 24 Apr 2014 05:39:11 +0000 (01:39 -0400)]
Add caDir and move serialDir into Config.Bind
Clinton Ebadi [Thu, 24 Apr 2014 05:38:11 +0000 (01:38 -0400)]
Include CONFIG_CORE signature in domtool.cfs and fix webbw build
Clinton Ebadi [Wed, 16 Apr 2014 17:46:33 +0000 (13:46 -0400)]
Initial domtool-config tool
Query static configuration information from domtool at run time. Will
be used for new installation bootstrap and make install.
Clinton Ebadi [Wed, 16 Apr 2014 07:59:05 +0000 (03:59 -0400)]
Makefile improvements
* Respect CFLAGS
* Require DEBUG=1 instead of just DEBUG being set
* Add TC=1 to instruct mlton to only type check
* BUILD32, in theory, could be used to build 32-bit binaries with
mlton on a 32-bit host, but is not working currently
Clinton Ebadi [Wed, 16 Apr 2014 07:57:24 +0000 (03:57 -0400)]
Factor path prefixes into ConfigCore structure
Not fully worked out yet, but this is the first step toward making it
easier to relocate domtool.
Clinton Ebadi [Tue, 15 Apr 2014 04:08:46 +0000 (00:08 -0400)]
Add \\ config argument to moinMoin and wordPress
Clinton Ebadi [Wed, 9 Apr 2014 22:39:57 +0000 (18:39 -0400)]
Move domtool-server from deleuze to fritz
Clinton Ebadi [Wed, 9 Apr 2014 21:28:35 +0000 (17:28 -0400)]
domtool-doc: fake privs
With environment defaults in the basis library, permissions need to be
faked to allow typechecking of your_FOO refinement types to succeed.
Clinton Ebadi [Wed, 9 Apr 2014 21:26:59 +0000 (17:26 -0400)]
Allow faking your_{user,path,group} and homedir
Autodoc hates the your_FOO refinement types, and I see no reason why
users wouldn't want to fake these values if they are already faking
domain permissions. Additionally, set the homedir to /tmp if the user
is unset and we're faking privs.
Clinton Ebadi [Wed, 9 Apr 2014 21:24:28 +0000 (17:24 -0400)]
Annotate defaults
Clinton Ebadi [Wed, 9 Apr 2014 21:24:02 +0000 (17:24 -0400)]
Autodoc support for default env var declarations
Clinton Ebadi [Wed, 9 Apr 2014 18:52:43 +0000 (14:52 -0400)]
Allow all users to use "nogroup" as `your_group'
Clinton Ebadi [Wed, 9 Apr 2014 18:52:20 +0000 (14:52 -0400)]
Move default environment settings from SML to Domtool
* Removed all Config settings that were only used to set env defaults
* Communicate values that must be generated SML-side using extern vals
* Remove Defaults module entirely
Clinton Ebadi [Wed, 9 Apr 2014 17:56:05 +0000 (13:56 -0400)]
Move ambient environment defaults into Env.env
* Compute initial type in `checkFile' rather than passing in `env_vars'
* Not happy with function names (initialDynEnvFOO is not very nice
looking)
Clinton Ebadi [Wed, 9 Apr 2014 09:50:10 +0000 (05:50 -0400)]
Parse new `var' primitive
Binds CSymbol to default for an environment variable.
Clinton Ebadi [Wed, 9 Apr 2014 18:54:09 +0000 (14:54 -0400)]
Remove .cvsignore, add .gitignore
Whoops...
Clinton Ebadi [Wed, 9 Apr 2014 07:45:47 +0000 (03:45 -0400)]
Fix missing copyright info
Clinton Ebadi [Wed, 2 Apr 2014 20:18:45 +0000 (16:18 -0400)]
Serve moin 1.9.8 htdocs prefix with apache
Clinton Ebadi [Wed, 2 Apr 2014 20:18:27 +0000 (16:18 -0400)]
Use mod_disk_cache for wordpress wp-content and moin static files
Clinton Ebadi [Sun, 30 Mar 2014 00:38:47 +0000 (20:38 -0400)]
Fix definition of DefaultAliasSource
Clinton Ebadi [Sat, 29 Mar 2014 01:35:05 +0000 (21:35 -0400)]
Easy_domain: Use DefaultAliasSource for DefaultAlias
A catch-all alias by default is deprecated. Rather than eliminating a
default email alias entirely, it will soon default to
$hcoop-username@$domain. Use new DefaultAliasSource environment
variable to change. The default is still a catch-all temporarily.
Clinton Ebadi [Sat, 29 Mar 2014 01:32:45 +0000 (21:32 -0400)]
Quiet compiler warning for Firewall.format{Input,Output}Rules
I think the type needs rethinking to make the case exhaustive
Clinton Ebadi [Sat, 29 Mar 2014 01:32:09 +0000 (21:32 -0400)]
Re-enable querying user firewall rules
Clinton Ebadi [Sat, 29 Mar 2014 00:35:14 +0000 (20:35 -0400)]
Add AuthGroupFile
RequireGroup is kind of useless without it
Clinton Ebadi [Sat, 29 Mar 2014 00:19:09 +0000 (20:19 -0400)]
Point docstrings at Apache 2.2 documentation
Clinton Ebadi [Mon, 22 Jul 2013 23:24:02 +0000 (19:24 -0400)]
Remove moinMoinOld directive
Clinton Ebadi [Mon, 22 Jul 2013 23:14:05 +0000 (19:14 -0400)]
Remove references to mire from source code
* Nuke it from orbit!
* Also: why are we destroying all webalizer output in domtool-reset-global?!
Clinton Ebadi [Sat, 13 Jul 2013 06:50:04 +0000 (02:50 -0400)]
Check user exists before opening incoming ports
* Although we can't limit who actually listens on the port, better to
not open any ports for members who might be gone
Clinton Ebadi [Sat, 13 Jul 2013 06:18:45 +0000 (02:18 -0400)]
Overhaul fwtool
* Parse into structured representation, and then convert later
* Printing code is still ugly, the rest is much easier to follow IMHO
* Fix ProxiedServer rule generation ("www-data" on a web nodes needs
port opened too)
* Fix LocalServer rule generation (allow user to connect to their own
server)
* Probably secretly sucks in some way
* UNTESTED
Clinton Ebadi [Tue, 19 Feb 2013 19:29:44 +0000 (14:29 -0500)]
Fix ProxiedServer firewall rule generation for web node
Clinton Ebadi [Fri, 15 Feb 2013 18:54:39 +0000 (13:54 -0500)]
Switch default web node from mire to navajos
Bombs away!
Clinton Ebadi [Thu, 31 Jan 2013 17:22:49 +0000 (12:22 -0500)]
Hide .svn and .git dirs on wordpress sites
Clinton Ebadi [Thu, 31 Jan 2013 17:18:19 +0000 (12:18 -0500)]
Remove php4 support Good riddance
Clinton Ebadi [Tue, 22 Jan 2013 22:23:46 +0000 (17:23 -0500)]
SSLCertificateChainFile support
Like kerberos auth, this works around non-SSL vhosts by printing a
warning and ignore the directive.
Clinton Ebadi [Tue, 22 Jan 2013 18:57:30 +0000 (13:57 -0500)]
bare fwtool regen
Regenerate all nodes at once
Clinton Ebadi [Fri, 18 Jan 2013 18:49:46 +0000 (13:49 -0500)]
Support MultiViews
Closes https://bugzilla.hcoop.net/show_bug.cgi?id=845
Clinton Ebadi [Fri, 18 Jan 2013 18:46:06 +0000 (13:46 -0500)]
Update lib
Clinton Ebadi [Tue, 15 Jan 2013 20:14:58 +0000 (15:14 -0500)]
Remove fritz from webNodes, remove mire from slave dns
Kill all of the old machines, I say.
Clinton Ebadi [Sun, 6 Jan 2013 11:18:52 +0000 (06:18 -0500)]
Change package-exists to return section/description
Kind of ugly, will break in wheezy (fields are localized and names
change), but we need this information for the portal. Possible evil
use of MsgNo without MsgYes.
Clinton Ebadi [Sun, 6 Jan 2013 08:47:38 +0000 (03:47 -0500)]
Add missed signature change
Clinton Ebadi [Sun, 6 Jan 2013 08:33:08 +0000 (03:33 -0500)]
Move Acl.read from start of slave loop to firewall handling case
Reading it before blocking waiting for a message could result in stale
permissions being used for a single request.
Clinton Ebadi [Sun, 6 Jan 2013 08:31:52 +0000 (03:31 -0500)]
Add query for existence of package
Used by the portal to determine if a package exists, rather than
querying the local apt. The implementation is copied from the portal
mostly, and is probably less than ideal: I think the return value of
apt-cache could be used, but the man page is unclear and this works
so...
Clinton Ebadi [Fri, 4 Jan 2013 08:36:01 +0000 (03:36 -0500)]
Do not generate zone files on bind slaves
* bind slaves perform domain transfers from the master server, so
there is no need to generate and push zone files to them. In theory.
Clinton Ebadi [Fri, 4 Jan 2013 08:34:08 +0000 (03:34 -0500)]
Remove `bind_config' group chowning from domtool-publish
* This was added so that jsl and others could adminster the bind
config without full root. No one is doing that now, no reason to
require a non-standard group for the time being.
Clinton Ebadi [Fri, 4 Jan 2013 08:33:10 +0000 (03:33 -0500)]
Add new outpost as domtool-slave and dns slave
Clinton Ebadi [Thu, 3 Jan 2013 06:36:38 +0000 (01:36 -0500)]
Remove outpost
It disappeared on us :(