{"id":13657648,"url":"https://github.com/vilmibm/puppet-tilde","last_synced_at":"2025-10-29T01:15:06.644Z","repository":{"id":21790361,"uuid":"25112837","full_name":"vilmibm/puppet-tilde","owner":"vilmibm","description":"a puppet module for setting up a tilde style server","archived":false,"fork":false,"pushed_at":"2023-10-08T04:02:35.000Z","size":95,"stargazers_count":98,"open_issues_count":17,"forks_count":15,"subscribers_count":7,"default_branch":"master","last_synced_at":"2025-03-12T08:29:14.488Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/vilmibm.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2014-10-12T07:56:59.000Z","updated_at":"2024-10-30T12:23:47.000Z","dependencies_parsed_at":"2024-08-02T05:03:26.167Z","dependency_job_id":null,"html_url":"https://github.com/vilmibm/puppet-tilde","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/vilmibm/puppet-tilde","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vilmibm%2Fpuppet-tilde","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vilmibm%2Fpuppet-tilde/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vilmibm%2Fpuppet-tilde/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vilmibm%2Fpuppet-tilde/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vilmibm","download_url":"https://codeload.github.com/vilmibm/puppet-tilde/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vilmibm%2Fpuppet-tilde/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":276622931,"owners_count":25675202,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-23T02:00:09.130Z","response_time":73,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-02T05:00:47.479Z","updated_at":"2025-09-23T18:07:04.667Z","avatar_url":"https://github.com/vilmibm.png","language":"HTML","funding_links":[],"categories":["HTML"],"sub_categories":[],"readme":"# puppet-tilde\n\nThis is an experimental, alpha Puppet module for setting up an Ubuntu server in\nthe style of [tilde.club](http://tilde.club).\n\nWhat is in master is generally guaranteed to have been tested casually\non an AWS EC2 micro running Ubuntu 14.04 at [tilde.town](http://tilde.town), but aside from that, there are\nno guarantees about the code. YMMV. I'm trying to keep the README up\nto date as I change things / add features.\n\n## Installation\n\n _All of these steps assume you are running as the `root` user._\n\n * Install the `puppet` and `puppetmaster` packages (they can be on the same\n   server). 3.4.x+ is required.\n * `puppet module install jfryman-nginx -v 0.0.10` (must install v0.0.10, [see here](https://github.com/jfryman/puppet-nginx/issues/460))\n * `apt-get install -y puppetmaster puppet`.\n * `puppet module install camptocamp-postfix`\n * Set up hiera:\n  * add a [hiera.yaml](https://github.com/nathanielksmith/puppet-tilde/tree/master/examples/hiera.yaml) to `/etc/puppet/`\n  * `ln -s /etc/puppet/hiera.yaml /etc/hiera.yaml`\n  * `mkdir /etc/puppet/hieradata`\n  * add and **configure** [common.yaml](https://github.com/nathanielksmith/puppet-tilde/tree/master/examples/common.yaml) to `/etc/puppet/hieradata/`\n * `cd /etc/puppet/modules`\n * `apt-get install -y git-core`\n * `git clone https://github.com/nathanielksmith/puppet-tilde.git tilde`\n * `git clone https://github.com/nathanielksmith/puppet-ngircd ngircd`\n * edit [site.pp](https://github.com/nathanielksmith/puppet-tilde/tree/master/examples/site.pp) and save to `/etc/puppet/manifests/site.pp`\n * `puppet agent -t --server={your_tilde_host_name}`\n\n## Adding Users\n\nTo add users to your tilde server, add them to your `common.yaml` (or whatever) like so:\n\n    tilde::users:\n      vilmibm:\n        pubkey: '...'\n      cmr:\n        pubkey: '...'\n      datagrok:\n        pubkey: '...'\n\nThe module purges any non-system users not managed by Puppet; in other words,\nto ban a user, simply delete them from the `tilde::users` hash in `common.yaml`.\n\nYou can also specify `pubkey_type` in the user hash if the user is\nfancy and not using `ssh-rsa`. The supported types are whatever is\nsupported by puppet's\n[authorized key type](https://docs.puppetlabs.com/references/latest/type.html#sshauthorizedkey)\n\nPassword based logins are not currently supported. You'll have to\nmanually enable that if you want it.\n\n## /etc/skel\n\n`/etc/skel` is managed as a set of files in the module. If you'd like to\nmodify these, make a local branch on the module and edit away. You can\nadd or remove files from the directory (note, old users will not\nretroactively get changes to `/etc/skel`).\n\n## Nginx\n\nCurrently, the module looks for `tilde::hostname` (e.g. _tilde.town_\nor _tilde.farm_ or _drawbridge.club_) and sets up an Nginx virtual host with:\n\n\n * a homepage for your tilde server (`/var/www/\u003cyour\n domain\u003e/index.html`)\n * user directories (`/~\u003cusername\u003e`) which map to `/home/\u003cusername\u003e/public_html`\n * server names `$hostname` and `www.$hostname`\n * **IMPORTANT** Make sure port 80 is open for your server.\n\n## IRC\n\nThe module sets up ngircd for you.\n\n * localhost only\n * `irc` alias added to users' `.bashrc` file.\n * per-user `irssi` configuration this will auto-connect to the\n   server and auto-join `#\u003chostname\u003e` where hostname is a .-less string\n   substitution of the hostname you specified as `tilde::hostname`.\n\nIt does **not** set up an operator. IRC governance is up to the\nautonomous collective to determine.\n\n## Mail\n\nThe module sets up postfix for you. Just like tilde.club, it's local\nmail only. Alpine and mutt are installed by default.\n\n## MotD\n\nThere is basic Message of the Day support. To customize the motd, make\na branch of the checked out puppet module and edit\n`templates/motd.erb`. The default template just has a basic cowsay\nwith a few instructions (and shows your server's hostname).\n\nA `motd` alias that just runs `cat /etc/motd` is also added by the\naliases file in `/etc/skel`.\n\n## NNTP (Usenet)\n\nThe program `inn2` is set up and configured for local access. The clients `slrn`, `tin`, and `alpine` are all installed by default. In order to transfer news with peers, you must enable both inbound and outbound traffic on TCP port 119 (for EC2 users, this may mean editing your security groups, for others it may mean editing iptables rules).\n\n**IMPORTANT**: Make sure port 119 is open for your server.\n\n**IMPORTANT**: Refer to [the example common.yaml file](https://github.com/nathanielksmith/puppet-tilde/tree/master/examples/common.yaml) to see how to configure newsgroups/peers. No groups are configured by default.\n\n## Quota support\n\nThis module enables 3mb user quotas for all non-system users. You'll\nneed to add the usrquota option to your / mount with something like\nthis in your `site.pp`, though, for it to work:\n\n    mount { '/':\n        ensure  =\u003e 'mounted',\n        device  =\u003e 'LABEL=cloudimg-rootfs',\n        dump    =\u003e '0',\n        fstype  =\u003e 'ext4',\n        options =\u003e 'defaults,discard,usrquota',\n        pass    =\u003e '0',\n        target  =\u003e '/etc/fstab',\n      }\n    }\n\nIf you **do not want disk quotas**, include the tilde class like this\nin your `site.pp`:\n\n    class { 'tilde':\n        use_quota =\u003e false,\n    }\n\nOr configure `common.yaml` with:\n\n    tilde::use_quota: false\n\n## TODO\n\n * A \"customization\" section in this README on how to modify things\n   like the server's homepage or `/etc/skel`.\n * Flags for switching on/off various services from `common.yaml` (if\n   you don't want NTTP, for example).\n\n## Authors\n\n * Nathaniel Smith \u003cnks@lambdaphil.es\u003e\n * Chris Roddy \u003ccmr@mdc2.org\u003e\n\n## License\n\nThis module is licensed under the terms of the GNU Public License version 3\n(GPLv3)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvilmibm%2Fpuppet-tilde","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvilmibm%2Fpuppet-tilde","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvilmibm%2Fpuppet-tilde/lists"}