mirror of
https://github.com/tildeclub/site.git
synced 2026-07-30 09:59:24 +00:00
Signed-off-by: keyboardan <keyboardan@tilde.club>
This commit is contained in:
@@ -8,13 +8,13 @@ category: tutorials
|
||||
|
||||
To get started, run the following command:
|
||||
|
||||
setup-2fa
|
||||
setup-2fa
|
||||
|
||||
Allow the command to update your Two-Factor Authentication. After running the
|
||||
command, you’ll be asked a couple of questions, the first one being:
|
||||
This one you need to answer 'yes'(y).
|
||||
|
||||
Do you want authentication tokens to be time-based (y/n)
|
||||
Do you want authentication tokens to be time-based (y/n)
|
||||
|
||||
You’ll then be presented with a secret key and multiple “scratch codes”.
|
||||
We strongly suggest saving these emergency scratch codes in a safe place,
|
||||
@@ -25,42 +25,41 @@ only be used once, so they really are in case of emergency.
|
||||
You’ll then be prompted with several questions, The choices are all
|
||||
about balancing security with ease-of-use. It begins with:
|
||||
|
||||
Do you want me to update your "~/.google_authenticator" file (y/n)
|
||||
Do you want me to update your "~/.google_authenticator" file (y/n)
|
||||
|
||||
You will need to answer 'yes'(y) for two-factor authentication to work with your login.
|
||||
|
||||
Next question we also suggest answering yes to prevent a replay attack:
|
||||
|
||||
Do you want to disallow multiple uses of the same authentication
|
||||
token? This restricts you to one login about every 30s, but it
|
||||
increases your chances to notice or even prevent
|
||||
man-in-the-middle attacks (y/n)
|
||||
Do you want to disallow multiple uses of the same authentication
|
||||
token? This restricts you to one login about every 30s, but it
|
||||
increases your chances to notice or even prevent
|
||||
man-in-the-middle attacks (y/n)
|
||||
|
||||
For security reasons we strongly suggest answering 'no'(n) to this next question:
|
||||
|
||||
By default, tokens are good for 30 seconds and in order to
|
||||
compensate for possible time-skew between the client and the server,
|
||||
we allow an extra token before and after the current time. If you
|
||||
experience problems with poor time synchronization, you can increase
|
||||
the window from its default size of 1:30min to about 4min.
|
||||
Do you want to do so (y/n)
|
||||
By default, tokens are good for 30 seconds and in order to
|
||||
compensate for possible time-skew between the client and the server,
|
||||
we allow an extra token before and after the current time. If you
|
||||
experience problems with poor time synchronization, you can increase
|
||||
the window from its default size of 1:30min to about 4min.
|
||||
Do you want to do so (y/n)
|
||||
|
||||
On the next question we suggest answering 'yes'(y) since rate-limiting
|
||||
means that a remote attacker can only attempt a certain number of guesses
|
||||
before being blocked.
|
||||
|
||||
If the computer that you are logging into isn't hardened against
|
||||
brute-force login attempts, you can enable rate-limiting for the
|
||||
authentication module. By default, this limits attackers to no more
|
||||
than 3 login attempts every 30s.
|
||||
If the computer that you are logging into isn't hardened against
|
||||
brute-force login attempts, you can enable rate-limiting for the
|
||||
authentication module. By default, this limits attackers to no more
|
||||
than 3 login attempts every 30s.
|
||||
|
||||
Do you want to enable rate-limiting (y/n)
|
||||
Do you want to enable rate-limiting (y/n)
|
||||
|
||||
Now you're configured. You can now login without an SSH key. Make sure you
|
||||
know your account password because login using two-factor authentication will
|
||||
still require your password before letting you in.
|
||||
|
||||
|
||||
# Two-Factor Authentication (2FA) on Tilde.Club Webmail
|
||||
|
||||
You can now enable 2FA in our webmail that is offered to users.
|
||||
@@ -74,7 +73,6 @@ You can now enable 2FA in our webmail that is offered to users.
|
||||
3. There should be a link titled "Configurate 2-Step Authentication".
|
||||
Click it, and click the Activate button that appears.
|
||||
|
||||
|
||||
# 2FA Mobile Applications
|
||||
|
||||
1. [Google Authenticator](https://play.google.com/store/apps/details?id=com.google.android.apps.authenticator2&hl=en_CA)
|
||||
|
||||
@@ -6,7 +6,6 @@ author:
|
||||
category: software
|
||||
---
|
||||
|
||||
|
||||
## Usage
|
||||
|
||||
1. To show the available commands type `bb`
|
||||
@@ -27,7 +26,6 @@ The script will handle the rest.
|
||||
|
||||
When you’re done, access the public URL for that folder (https://tilde.club/~username/blog) and you should see the index file and a new page for that post!
|
||||
|
||||
|
||||
## advanced
|
||||
|
||||
edit the `.config` file to change the name and url and other settings for your blog
|
||||
|
||||
@@ -154,10 +154,10 @@ would be noted in each example.
|
||||
|
||||
#!/usr/bin/awk -E
|
||||
BEGIN {
|
||||
print "Status: 200"
|
||||
print "Content-Type: text/plain"
|
||||
print
|
||||
print "Hello World!"
|
||||
print "Status: 200"
|
||||
print "Content-Type: text/plain"
|
||||
print
|
||||
print "Hello World!"
|
||||
}
|
||||
- Lua
|
||||
(also works with <q><samp>.lua</samp></q> extension):
|
||||
@@ -178,10 +178,10 @@ would be noted in each example.
|
||||
|
||||
#!/usr/bin/sbcl --script
|
||||
(progn
|
||||
(princ "Status: 200") (terpri)
|
||||
(princ "Content-Type: text/plain") (terpri)
|
||||
(terpri)
|
||||
(princ "Hello World!") (terpri)
|
||||
(princ "Status: 200") (terpri)
|
||||
(princ "Content-Type: text/plain") (terpri)
|
||||
(terpri)
|
||||
(princ "Hello World!") (terpri)
|
||||
)
|
||||
|
||||
Pick the language you like,
|
||||
@@ -214,25 +214,25 @@ Output of your CGI programs is expected to have two parts:
|
||||
will be treated as HTTP response headers fields:
|
||||
|
||||
- The only exception is the <q>`Status:`</q> pseudo-header,
|
||||
which will not be output as a real response header,
|
||||
but its value will be rather used as HTTP status code of the response.
|
||||
- When <q>`Status:`</q> pseudo-header is omitted,
|
||||
the HTTP status code of your response would be 200.
|
||||
- Your program ought **NOT** to output this as a real HTTP response line
|
||||
(<q>`HTTP/1.0 200 OK`</q> and suchlike).
|
||||
Doing so is off-spec;
|
||||
and while some servers handle this okay,
|
||||
Tilde.club doesn't.
|
||||
which will not be output as a real response header,
|
||||
but its value will be rather used as HTTP status code of the response.
|
||||
- When <q>`Status:`</q> pseudo-header is omitted,
|
||||
the HTTP status code of your response would be 200.
|
||||
- Your program ought **NOT** to output this as a real HTTP response line
|
||||
(<q>`HTTP/1.0 200 OK`</q> and suchlike).
|
||||
Doing so is off-spec;
|
||||
and while some servers handle this okay,
|
||||
Tilde.club doesn't.
|
||||
- You **MUST** output <q>`Content-Type:`</q> header;
|
||||
or else the server would reject your program's output
|
||||
and give HTTP 502 error to the client instead.
|
||||
or else the server would reject your program's output
|
||||
and give HTTP 502 error to the client instead.
|
||||
- A blank line ends the headers section.
|
||||
- You should output headers
|
||||
(including the blank line terminating the headers)
|
||||
in platform's native line ending,
|
||||
which is LF in case of Tilde.club and other GNU/Linux hosts;
|
||||
but in practice,
|
||||
CR/LF is accepted as well.
|
||||
(including the blank line terminating the headers)
|
||||
in platform's native line ending,
|
||||
which is LF in case of Tilde.club and other GNU/Linux hosts;
|
||||
but in practice,
|
||||
CR/LF is accepted as well.
|
||||
|
||||
1. And what you output after the first blank line
|
||||
is your response body (i.e. content).
|
||||
@@ -269,9 +269,9 @@ in the environment variables:
|
||||
would be passed to your CGI program
|
||||
as the value of environment variable `QUERY_STRING`.
|
||||
- This variable will always be present.
|
||||
If the request URI had no <q>`?`</q>,
|
||||
or there was nothing after <q>`?`</q>;
|
||||
the value would be empty.
|
||||
If the request URI had no <q>`?`</q>,
|
||||
or there was nothing after <q>`?`</q>;
|
||||
the value would be empty.
|
||||
- Each request headers field's name would be converted to uppercase,
|
||||
prepended with <q>`HTTP_`</q>,
|
||||
and set as environment variable
|
||||
@@ -327,7 +327,7 @@ but are set for CGI programs in Tilde.club:
|
||||
checking for `HTTPS` value <q>`on`</q> is to be used
|
||||
if you expect your CGI program to be portable to Apache HTTP Server.
|
||||
- This can be used for ensuring a correct version of Atom or RSS feed
|
||||
got served on a right protocol.
|
||||
got served on a right protocol.
|
||||
|
||||
Program Execution
|
||||
-----------------
|
||||
|
||||
@@ -6,7 +6,6 @@ category: tilde.club
|
||||
|
||||
> **tl;dr** learn by doing and helping. be excellent to each other. have fun!
|
||||
|
||||
|
||||
## 1. purpose
|
||||
|
||||
a primary goal of Tilde.club is to be inclusive to the largest number of
|
||||
@@ -20,7 +19,6 @@ in our community, as well as the consequences for unacceptable behavior.
|
||||
we invite all those who participate in Tilde.club to help us create safe
|
||||
and positive experiences for everyone.
|
||||
|
||||
|
||||
## 2. Tilde.club mission
|
||||
|
||||
**tilde.club exists to foster an engaged community for socializing, learning,
|
||||
@@ -34,7 +32,6 @@ to that end, Tilde.club strives to be a radically inclusive community where
|
||||
people of all backgrounds and all technological experience levels can come
|
||||
together to learn, to teach, and to delight in one another's creations.
|
||||
|
||||
|
||||
## 3. expected behavior
|
||||
|
||||
the following behaviors are expected and requested of all community members:
|
||||
@@ -48,7 +45,6 @@ the following behaviors are expected and requested of all community members:
|
||||
* be mindful of your surroundings and of your fellow participants.
|
||||
* teach when people need help. don't do it for them.
|
||||
|
||||
|
||||
## 4. unacceptable behavior
|
||||
|
||||
the following behaviors are considered harassment and are unacceptable within
|
||||
@@ -66,7 +62,6 @@ our community:
|
||||
* unwelcome sexual attention. this includes sexualized comments or jokes.
|
||||
* deliberate intimidation, stalking or following.
|
||||
|
||||
|
||||
## 5. consequences of unacceptable behavior
|
||||
|
||||
unacceptable behavior from any community member, including sponsors and
|
||||
@@ -79,7 +74,6 @@ organizers may take any action they deem appropriate, up to and including
|
||||
a temporary ban or permanent expulsion from Tilde.club without warning
|
||||
(meaning your account will be terminated and all user data deleted).
|
||||
|
||||
|
||||
## 6. reporting guidelines
|
||||
|
||||
if you are subject to or witness unacceptable behavior, or have any other
|
||||
@@ -87,14 +81,12 @@ concerns, please contact an admin (see info below).
|
||||
|
||||
additionally, help engaging with law enforcement is available.
|
||||
|
||||
|
||||
## 7. addressing grievances
|
||||
|
||||
if you feel you have been falsely or unfairly accused of violating this
|
||||
code of conduct, use the contact info below to send a concise description
|
||||
of your grievance.
|
||||
|
||||
|
||||
## 8. scope
|
||||
|
||||
we expect all Tilde.club members to abide by this code of conduct while:
|
||||
@@ -102,7 +94,6 @@ we expect all Tilde.club members to abide by this code of conduct while:
|
||||
* engaging with other members
|
||||
* publishing content on Tilde.club
|
||||
|
||||
|
||||
## 9. contact info
|
||||
|
||||
Tilde.club admins:
|
||||
@@ -118,7 +109,6 @@ make sure we all get it.
|
||||
- [deepend@tilde.club](mailto:deepend@tilde.club)
|
||||
- on irc `/query deepend hello`
|
||||
|
||||
|
||||
## 10. license and attribution
|
||||
|
||||
this code of conduct is based on
|
||||
@@ -126,4 +116,3 @@ this code of conduct is based on
|
||||
and [tilde.town coc](http://tilde.town/wiki/conduct.html)
|
||||
under the terms of the [creative commons attribution-sharealike
|
||||
license](http://creativecommons.org/licenses/by-sa/3.0/).
|
||||
|
||||
|
||||
@@ -20,4 +20,3 @@ Note: If at any time you feel you made a mistake in editing, you can exit and n
|
||||
|
||||
There's more info here about the nano editor; if you're familiar with
|
||||
emacs or vim they are here too.
|
||||
|
||||
|
||||
@@ -7,5 +7,3 @@ category: tutorials
|
||||
All users can now setup their own custom 404 error page. Just add a file named `404.html` in `~/public_html`
|
||||
|
||||
An example of one user's custom 404: [~benharri](http://tilde.club/~benharri/not_here).
|
||||
|
||||
|
||||
|
||||
@@ -4,15 +4,15 @@ author: ford (updated by deepend)
|
||||
category: tilde.club
|
||||
---
|
||||
|
||||
_______________________________________
|
||||
/ WELCOME TO TILDE.CLUB A place for web \
|
||||
\ pages /
|
||||
---------------------------------------
|
||||
\ ^__^
|
||||
\ (oo)\_______
|
||||
(__)\ )\/\
|
||||
||----w |
|
||||
|| ||
|
||||
_______________________________________
|
||||
/ WELCOME TO TILDE.CLUB A place for web \
|
||||
\ pages /
|
||||
---------------------------------------
|
||||
\ ^__^
|
||||
\ (oo)\_______
|
||||
(__)\ )\/\
|
||||
||----w |
|
||||
|| ||
|
||||
|
||||
Looking to join? We can\'t wait to meet you!
|
||||
--------------------------------------------
|
||||
@@ -39,7 +39,7 @@ new to all of this. In the meantime\...
|
||||
|
||||
- DON\'T HACK THE GIBSON.
|
||||
- no drama. be respectful. have fun. we\'re all trying, and we\'re all
|
||||
in this together :)
|
||||
in this together :)
|
||||
|
||||
Got it, don\'t be a jerk. But how do I, like, do things?
|
||||
--------------------------------------------------------
|
||||
@@ -47,11 +47,11 @@ Got it, don\'t be a jerk. But how do I, like, do things?
|
||||
Here are some good places to start
|
||||
|
||||
- [the unofficial official tilde
|
||||
primer](http://tilde.club/~anthonydpaul/primer.html)
|
||||
primer](http://tilde.club/~anthonydpaul/primer.html)
|
||||
- [some more quick
|
||||
tips](http://tilde.club/~pfhawkins/tipsntricks.html)
|
||||
tips](http://tilde.club/~pfhawkins/tipsntricks.html)
|
||||
- [how do I usenet in
|
||||
Tilde.club](http://tilde.club/wiki/usenet-news.html)?
|
||||
Tilde.club](http://tilde.club/wiki/usenet-news.html)?
|
||||
- [help me understand \'screen\'](http://tilde.club/~jonathan/screen/)
|
||||
|
||||
Who are all these folks and what are they up to?
|
||||
@@ -59,9 +59,9 @@ Who are all these folks and what are they up to?
|
||||
|
||||
- [tell me some lore](http://tilde.club/~joeld/tildelore.html)?
|
||||
- [who is online right
|
||||
now](http://tilde.club/~whitneymcn/whoville.shtml)?
|
||||
now](http://tilde.club/~whitneymcn/whoville.shtml)?
|
||||
- [who updated their websites
|
||||
recently](http://tilde.club/tilde.24h.php)?
|
||||
recently](http://tilde.club/tilde.24h.php)?
|
||||
- [can you give me a blogroll](http://tilde.club/~_/)?
|
||||
|
||||
Disk Quotas Now Enforced
|
||||
@@ -111,7 +111,7 @@ TIL-dee.
|
||||
|
||||
We can\'t wait to meet you. Seriously.
|
||||
|
||||
__ .' '.
|
||||
_/__) . . .
|
||||
(8|)_}}- . . .
|
||||
`\__) '. . ' ' . . '
|
||||
__ .' '.
|
||||
_/__) . . .
|
||||
(8|)_}}- . . .
|
||||
`\__) '. . ' ' . . '
|
||||
|
||||
@@ -28,8 +28,8 @@ Tilde.club account. Use the email address that you used to create your
|
||||
GitHub account. You can register multiple accounts with GitHub if
|
||||
needed.
|
||||
|
||||
git config --global user.name "Your Name Here"
|
||||
git config --global user.email youremail@example.org
|
||||
git config --global user.name "Your Name Here"
|
||||
git config --global user.email youremail@example.org
|
||||
|
||||
You will also want to create a `.gitignore` file. This file defines what
|
||||
things you want git to ignore, such as editor temporary files or
|
||||
@@ -40,13 +40,13 @@ project directory.
|
||||
|
||||
Here is an example `.gitignore` file:
|
||||
|
||||
# files being edited
|
||||
*~
|
||||
*swp
|
||||
# Generated files
|
||||
tilde_graphs
|
||||
# Private files
|
||||
diary.txt
|
||||
# files being edited
|
||||
*~
|
||||
*swp
|
||||
# Generated files
|
||||
tilde_graphs
|
||||
# Private files
|
||||
diary.txt
|
||||
|
||||
Now go create a repository on GitHub. In our examples we are using
|
||||
mytildeweb as the repo name, but you can choose whatever name works for
|
||||
@@ -55,22 +55,22 @@ with the proper one.
|
||||
|
||||
Now we should be ready to create and upload the repository.
|
||||
|
||||
cd public_html/
|
||||
# This will initialize public_html as a repository
|
||||
git init
|
||||
# Adds all files to the repo. "." means "the current directory" (public_html, in this case)
|
||||
# Note: you can also add files one at a time
|
||||
git add .
|
||||
# Commits files to local repo
|
||||
git commit -m "first commit of tildeweb"
|
||||
# Tells git where your remote repo is
|
||||
git remote add origin https://github.com/<yourgithubuser>/mytildeweb.git
|
||||
# Uploads to the remote repo
|
||||
git push -u origin master
|
||||
cd public_html/
|
||||
# This will initialize public_html as a repository
|
||||
git init
|
||||
# Adds all files to the repo. "." means "the current directory" (public_html, in this case)
|
||||
# Note: you can also add files one at a time
|
||||
git add .
|
||||
# Commits files to local repo
|
||||
git commit -m "first commit of tildeweb"
|
||||
# Tells git where your remote repo is
|
||||
git remote add origin https://github.com/<yourgithubuser>/mytildeweb.git
|
||||
# Uploads to the remote repo
|
||||
git push -u origin master
|
||||
|
||||
Your files should now be on GitHub. If you make a change and you want to
|
||||
update, do the following after making your edits:
|
||||
|
||||
git add index.html
|
||||
git commit -m "updated blog"
|
||||
git push origin master
|
||||
git add index.html
|
||||
git commit -m "updated blog"
|
||||
git push origin master
|
||||
|
||||
@@ -26,7 +26,7 @@ A simple, shared guestbook hosted at **guestbook.tilde.club** that you can link
|
||||
|
||||
```html
|
||||
<a href="https://guestbook.tilde.club/index.php?user=<your_username>&theme=default">
|
||||
Sign my guestbook
|
||||
Sign my guestbook
|
||||
</a>
|
||||
```
|
||||
|
||||
@@ -70,7 +70,7 @@ When you pass a `theme`, **only your CSS is loaded** (the default stylesheet is
|
||||
|
||||
* Make sure the link is on `https://tilde.club/~<your_username>/...` (not just the domain root).
|
||||
* Check that browser extensions or privacy settings aren’t stripping referrers.
|
||||
* On Firefox: Make sure in your about:config that `network.http.referer.XOriginTrimmingPolicy` is set to 0.
|
||||
* On Firefox: Make sure in your about:config that `network.http.referer.XOriginTrimmingPolicy` is set to 0.
|
||||
* The error page will display what referrer was received and the expected pattern.
|
||||
|
||||
## Example links
|
||||
|
||||
@@ -51,21 +51,21 @@ To get started:
|
||||
1. In WeeChat:
|
||||
|
||||
* Set your relay password using `/secure`:
|
||||
* `/secure set relay mysupersecretpassword`
|
||||
* `/set relay.network.password "${sec.data.relay}"`
|
||||
* `/secure set relay mysupersecretpassword`
|
||||
* `/set relay.network.password "${sec.data.relay}"`
|
||||
|
||||
* Create the UNIX-socket relay.
|
||||
|
||||
* **Tilde.club’s nginx proxy expects the socket in your home dir:**
|
||||
* `/relay add unix.weechat ~/.weechat/relay_socket`
|
||||
* **Tilde.club’s nginx proxy expects the socket in your home dir:**
|
||||
* `/relay add unix.weechat ~/.weechat/relay_socket`
|
||||
|
||||
2. At your shell (permissions):
|
||||
|
||||
* Ensure nginx can traverse to the socket (execute-only is enough):
|
||||
* `chmod o+x ~/.weechat`
|
||||
* `chmod o+x ~/.weechat`
|
||||
|
||||
* After WeeChat creates the socket, allow nginx to read/write it:
|
||||
* `setfacl -m u:nginx:rw ~/.weechat/relay_socket`
|
||||
* `setfacl -m u:nginx:rw ~/.weechat/relay_socket`
|
||||
|
||||
3. In your relay client (WebSocket via Tilde.club proxy):
|
||||
|
||||
@@ -73,16 +73,16 @@ To get started:
|
||||
(The Tilde.club proxy endpoint should handle this mapping for you.)
|
||||
|
||||
* [glowing-bear](https://glowingbear.tilde.club/):
|
||||
- relay host: `username.tildecities.com:443/weechat`
|
||||
- relay port: `443`
|
||||
- your relay password
|
||||
- relay host: `username.tildecities.com:443/weechat`
|
||||
- relay port: `443`
|
||||
- your relay password
|
||||
|
||||
* [weechat-android](https://github.com/ubergeek42/weechat-android) and [lith](https://github.com/lithapp/lith):
|
||||
- connection type: WebSocket (SSL/TLS)
|
||||
- relay host: `username.tildecities.com`
|
||||
- relay port: `443`
|
||||
- websocket path: `/weechat`
|
||||
- your relay password
|
||||
- connection type: WebSocket (SSL/TLS)
|
||||
- relay host: `username.tildecities.com`
|
||||
- relay port: `443`
|
||||
- websocket path: `/weechat`
|
||||
- your relay password
|
||||
|
||||
### Removing old relays
|
||||
|
||||
@@ -94,7 +94,6 @@ Delete a relay:
|
||||
|
||||
(Example: `/relay del unix.weechat`.)
|
||||
|
||||
|
||||
## IRC Bouncer (ZNC)
|
||||
NOTE: Email deepend or message him on IRC if you require ZNC access.
|
||||
|
||||
|
||||
@@ -71,4 +71,3 @@ Or, if you don't like it - try [screen](screen.html)
|
||||
It's pretty handy. [tmux](tmux.html) does a similar set of things.
|
||||
|
||||
a nice [screen tutorial](http://tilde.club/~jonathan/screen/) from ~jonathan will walk you through it.
|
||||
|
||||
|
||||
@@ -17,10 +17,10 @@ As Paul says:
|
||||
What does that mean with respect to scripting and programming on a shared host?
|
||||
|
||||
- DOs
|
||||
- Respect shared CPU/Disk/Network resources
|
||||
- Keep things that require a Tilde.club login local to the server (don't post publicly), like home directory files:
|
||||
- Note that exceptions could include an opt-in file or special permissions from the user.
|
||||
- Respect `robots.txt` when writing web crawlers
|
||||
- Respect shared CPU/Disk/Network resources
|
||||
- Keep things that require a Tilde.club login local to the server (don't post publicly), like home directory files:
|
||||
- Note that exceptions could include an opt-in file or special permissions from the user.
|
||||
- Respect `robots.txt` when writing web crawlers
|
||||
|
||||
In short use your common sense and consider how your actions may affect others.
|
||||
|
||||
@@ -39,13 +39,13 @@ Before exposing data such as this to the world, it should check for an opt in fi
|
||||
#### Shared Resources
|
||||
|
||||
- In general
|
||||
- Consider executing long running processes during overnight hours when fewer users are on the system
|
||||
- Consider executing long running processes during overnight hours when fewer users are on the system
|
||||
- CPU
|
||||
- Use the `nice` command to keep intensive processes from affecting others
|
||||
- The `nice -n19 -p$$` placed in a script will make sure it runs at the lowest priority.
|
||||
- Run a long command at the lowest CPU priority: `nice -n 19 ~/bin/command`
|
||||
- Change the priority of process 923 (also known as "re-nicing a process") : `renice -17 -p923`
|
||||
- Use the `nice` command to keep intensive processes from affecting others
|
||||
- The `nice -n19 -p$$` placed in a script will make sure it runs at the lowest priority.
|
||||
- Run a long command at the lowest CPU priority: `nice -n 19 ~/bin/command`
|
||||
- Change the priority of process 923 (also known as "re-nicing a process") : `renice -17 -p923`
|
||||
- Disk
|
||||
- On any commands that will heavily use disk, consider using the `ionice` command so that scripts will not affect interactive users
|
||||
- By adding the `ionice -c3 -p$$` command to any script, it will only use disk when idle.
|
||||
- You can also run a command or script: `ionice -c3 -t ~/bin/command`
|
||||
- On any commands that will heavily use disk, consider using the `ionice` command so that scripts will not affect interactive users
|
||||
- By adding the `ionice -c3 -p$$` command to any script, it will only use disk when idle.
|
||||
- You can also run a command or script: `ionice -c3 -t ~/bin/command`
|
||||
|
||||
@@ -8,8 +8,8 @@ category: tutorials
|
||||
|
||||
Unix was built with a fairly open security policy. It's the kind of system you might expect a bunch of Berkley hippies to design. That said, if it bugs you that someone might be able to look the files in your home directory and you don't want to read any more of this document then run these commands:
|
||||
|
||||
cd ~
|
||||
chmod 711 .
|
||||
cd ~
|
||||
chmod 711 .
|
||||
|
||||
Those will keep anyone on the system from looking at your directory while still allowing your `~youruser` site to work. If you want to have more control over who can view what in your directory, then please read on. You can even come back and read this later, we'll be here.
|
||||
|
||||
@@ -20,23 +20,23 @@ What is a user? For starters, you are a user and so is every other person on the
|
||||
There are several attributes that define a user.
|
||||
|
||||
- username
|
||||
This is your login id and the name of your homedir
|
||||
This is your login id and the name of your homedir
|
||||
- user id (or uid)
|
||||
This is your unique numerical id number on the system. This is how the system keeps track of you, your processes, and your files.
|
||||
This is your unique numerical id number on the system. This is how the system keeps track of you, your processes, and your files.
|
||||
- group id (or gid)
|
||||
This is a unique numerical id number for your primary user group on the system. User groups are the traditional way that users would collaborate on large projects.
|
||||
This is a unique numerical id number for your primary user group on the system. User groups are the traditional way that users would collaborate on large projects.
|
||||
|
||||
For now we only need to know about the username.
|
||||
|
||||
#### Welcome to Tilde.club, your new home (and homedir)
|
||||
When you registered for the system, you got an email that contained many things. One of those things was a username, and another was a password. When you logged into the server you were presented with what we call a prompt, and it looked a bit like this:
|
||||
|
||||
sh-4.1$
|
||||
sh-4.1$
|
||||
|
||||
That's boring so type the command `ls -l public_html/index.html`
|
||||
|
||||
sh-4.1$ ls -l public_html/index.html
|
||||
rw-rw-r-- 1 youruser youruser 177 Oct 13 04:51 public_html/index.html
|
||||
sh-4.1$ ls -l public_html/index.html
|
||||
rw-rw-r-- 1 youruser youruser 177 Oct 13 04:51 public_html/index.html
|
||||
|
||||
You'll notice that your login shows up, but what does this actually show us?
|
||||
|
||||
@@ -44,32 +44,31 @@ First of all `ls` is a command to list files and directories. We've given it the
|
||||
|
||||
What does this long file listing of `my_file` show us?
|
||||
|
||||
-rw-rw-r-- 1 youruser youruser 177 Oct 13 04:51 my_file
|
||||
---------- --- ------- -------- ----- ------------ -------------
|
||||
| | | | | | |
|
||||
| | | | | +--- Modification Time
|
||||
| | | | +------------- Size (in bytes)
|
||||
| | | +----------------------- Group owner
|
||||
| | +-------------------------------- User owner
|
||||
| +-------------------------------------- Number of links
|
||||
+---------------------------------------------- File Permissions
|
||||
-rw-rw-r-- 1 youruser youruser 177 Oct 13 04:51 my_file
|
||||
---------- --- ------- -------- ----- ------------ -------------
|
||||
| | | | | | |
|
||||
| | | | | +--- Modification Time
|
||||
| | | | +------------- Size (in bytes)
|
||||
| | | +----------------------- Group owner
|
||||
| | +-------------------------------- User owner
|
||||
| +-------------------------------------- Number of links
|
||||
+---------------------------------------------- File Permissions
|
||||
|
||||
This seems like a lot to take in, but for the purpose of talking about files and security, we'll only need three things: the file permissions, the group owner and the user owner.
|
||||
|
||||
- Homework
|
||||
- Run `ls -la` in your home directory and note the users and permissions of the various files
|
||||
- Run `ls -l /etc/passwd` and `ls -l /var/log/messages` and compare the permissions and ownership to that of your homedir
|
||||
|
||||
- Run `ls -la` in your home directory and note the users and permissions of the various files
|
||||
- Run `ls -l /etc/passwd` and `ls -l /var/log/messages` and compare the permissions and ownership to that of your homedir
|
||||
|
||||
### Basics about file and directory permissions
|
||||
|
||||
-rwxrwxrwx
|
||||
----------
|
||||
| | | |
|
||||
| | | +--- Other Read/Write/Execute permissions
|
||||
| | +------ Group Read/Write/Execute permissions
|
||||
| +--------- User Read/Write/Execute permissions
|
||||
+----------- Directory/Special flag
|
||||
-rwxrwxrwx
|
||||
----------
|
||||
| | | |
|
||||
| | | +--- Other Read/Write/Execute permissions
|
||||
| | +------ Group Read/Write/Execute permissions
|
||||
| +--------- User Read/Write/Execute permissions
|
||||
+----------- Directory/Special flag
|
||||
|
||||
The first column at first glance looks like a bunch of alphabet soup, however if you look over a few of them, a pattern begins to emerge. Some lines begin with `d` and there are repeating instances of `r`, `w` and `x`. You might notice that the lines beginning with `d` refer to directories and that many files have `rw-` at the start of the column and `r--` or even `---` at the end of the column. These are important and indicate to the computer and to users how that file can be accessed.
|
||||
|
||||
@@ -78,50 +77,49 @@ The first column at first glance looks like a bunch of alphabet soup, however if
|
||||
There are three major types of permissions (and a hand full of others)
|
||||
|
||||
- Read
|
||||
Read permission is represented as an `r` and will allow a listing of a directory and reading a file.
|
||||
Read permission is represented as an `r` and will allow a listing of a directory and reading a file.
|
||||
- Write
|
||||
Write permission is represented with a `w` and allows a file or directory to be written to or deleted.
|
||||
Write permission is represented with a `w` and allows a file or directory to be written to or deleted.
|
||||
- Execute
|
||||
Execute permission is represented as an `x` and allows a file (such as a script) to be executed and it allows for a directory to be "traversed"
|
||||
Execute permission is represented as an `x` and allows a file (such as a script) to be executed and it allows for a directory to be "traversed"
|
||||
|
||||
- Other special permissions and notations in `ls -l`
|
||||
- `-` means that the permission for that place isn't set. If it's at the beginning of the line, it means it's a normal file.
|
||||
- `d` at the start of a line isn't a permission really. It just denotes a directory.
|
||||
- `b` or `c` isn't a permission either, it probably means you did an `ls -l` of the `/dev` directory as those indicate block or character devices.
|
||||
- `s` is a setuid/setgid permission. It's a special setting that allows you to run a script file or program as a user or a group. It can be used on a directory to make sure files are written as a user/group. It's rare to see, and in general should be used only if the proper precautions are taken. Serious consequences can come about if a shell script/program is poorly written and given setuid permissions, as it could lead to an escalation to root privileges or a more privileged user.
|
||||
- `-` means that the permission for that place isn't set. If it's at the beginning of the line, it means it's a normal file.
|
||||
- `d` at the start of a line isn't a permission really. It just denotes a directory.
|
||||
- `b` or `c` isn't a permission either, it probably means you did an `ls -l` of the `/dev` directory as those indicate block or character devices.
|
||||
- `s` is a setuid/setgid permission. It's a special setting that allows you to run a script file or program as a user or a group. It can be used on a directory to make sure files are written as a user/group. It's rare to see, and in general should be used only if the proper precautions are taken. Serious consequences can come about if a shell script/program is poorly written and given setuid permissions, as it could lead to an escalation to root privileges or a more privileged user.
|
||||
|
||||
#### Three classes of access permissions
|
||||
|
||||
- User permissions
|
||||
This set of access controls define what an owner can do to her own files or directories. These controls are most often useful to set on a script file you want to run or a file you want to protect from deletion or overwriting.
|
||||
This set of access controls define what an owner can do to her own files or directories. These controls are most often useful to set on a script file you want to run or a file you want to protect from deletion or overwriting.
|
||||
|
||||
- Group permissions
|
||||
This set of access controls define what the group can do to a file or directory. This tends not to matter much in your homedir, but it can matter a lot when working with other users on shared projects.
|
||||
This set of access controls define what the group can do to a file or directory. This tends not to matter much in your homedir, but it can matter a lot when working with other users on shared projects.
|
||||
|
||||
- Others
|
||||
These access controls are what you use to allow and others who are not listed as an owner or group member to do to a file or directory. For example, if you remove read permissions from others on your ~/public_html/index.html`, the webserver process will be unable to read your web page.
|
||||
These access controls are what you use to allow and others who are not listed as an owner or group member to do to a file or directory. For example, if you remove read permissions from others on your ~/public_html/index.html`, the webserver process will be unable to read your web page.
|
||||
|
||||
#### Changing file and directory permissions using `chmod`
|
||||
|
||||
Examples
|
||||
|
||||
- Homework
|
||||
- `mkdir -p test/01` and then try the following `chmod` commands
|
||||
chmod u+rwx test
|
||||
echo "hello world" > test/a_file
|
||||
ls -l test
|
||||
chmod ugo-rw test
|
||||
ls -l test
|
||||
ls -l test/a_file
|
||||
|
||||
- `mkdir -p test/01` and then try the following `chmod` commands
|
||||
chmod u+rwx test
|
||||
echo "hello world" > test/a_file
|
||||
ls -l test
|
||||
chmod ugo-rw test
|
||||
ls -l test
|
||||
ls -l test/a_file
|
||||
|
||||
#### Basics about the `finger` and `chfn` commands
|
||||
|
||||
How to see others in the system using `finger`
|
||||
|
||||
Type the command `finger`
|
||||
Type the command `finger`
|
||||
|
||||
Type the command `finger $USER`
|
||||
Type the command `finger $USER`
|
||||
|
||||
How others see you.
|
||||
|
||||
@@ -129,27 +127,26 @@ Changing the information people see about you using `chfn`
|
||||
|
||||
creating a `~/.plan` and `~/.project` file that's readable
|
||||
|
||||
|
||||
#### More advanced topics
|
||||
|
||||
Let's look at the `/etc/passwd` file. What is it? It's a file that contains most of the information about users in the system.
|
||||
|
||||
- Homework
|
||||
- `head -10 /etc/passwd`
|
||||
- `grep $USER /etc/passwd`
|
||||
- Note the columns in the `/etc/passwd` file. Note the columns and the `:` separator between them.
|
||||
- `head -10 /etc/passwd`
|
||||
- `grep $USER /etc/passwd`
|
||||
- Note the columns in the `/etc/passwd` file. Note the columns and the `:` separator between them.
|
||||
|
||||
Back at our command line, lets type the command `id`:
|
||||
|
||||
sh-4.1$ id
|
||||
uid=501(youruser) gid=501(youruser) groups=501(youruser)`
|
||||
sh-4.1$ id
|
||||
uid=501(youruser) gid=501(youruser) groups=501(youruser)`
|
||||
|
||||
The `id` command is a tool to show us how the system keeps track of us. From this we can see that according to the system, our user ID (or uid) is 501, and our group id is also 501.
|
||||
|
||||
- Homework
|
||||
- Run `id` in your own directory, then run
|
||||
- Run `id -u root`
|
||||
- use the `grep` command to find your uid in the `/etc/passwd` file
|
||||
- Run `id` in your own directory, then run
|
||||
- Run `id -u root`
|
||||
- use the `grep` command to find your uid in the `/etc/passwd` file
|
||||
|
||||
As noted above, we can obtain our group id using the `id` command. Try locating your group in `/etc/group` using the commands that were specified above; your group name will probably be the same as your user (although at times this might not be true depending on the configuration of the system).
|
||||
|
||||
@@ -166,21 +163,21 @@ To make this easier, the server provides a helper command you use with `sudo`:
|
||||
|
||||
- List who is in your personal group:
|
||||
|
||||
```sh
|
||||
sudo self-groupmems list
|
||||
```
|
||||
```sh
|
||||
sudo self-groupmems list
|
||||
```
|
||||
|
||||
- Add another user to your group:
|
||||
|
||||
```sh
|
||||
sudo self-groupmems add otheruser
|
||||
```
|
||||
```sh
|
||||
sudo self-groupmems add otheruser
|
||||
```
|
||||
|
||||
- Remove a user from your group:
|
||||
|
||||
```sh
|
||||
sudo self-groupmems del otheruser
|
||||
```
|
||||
```sh
|
||||
sudo self-groupmems del otheruser
|
||||
```
|
||||
|
||||
This only affects membership of **your** personal group. It does **not** change your primary group, and it does not let you modify other system groups.
|
||||
|
||||
|
||||
@@ -8,4 +8,3 @@ category: links
|
||||
Documentation for slrn can be found at [http://slrn.sourceforge.net](http://slrn.sourceforge.net)
|
||||
|
||||
Tilde-specific slrn info is on [http://tilde.club/~joeld/slrn.html](http://tilde.club/~joeld/slrn.html)
|
||||
|
||||
|
||||
@@ -4,7 +4,6 @@ title: How to connect using SSH (secure shell)
|
||||
category: tutorials
|
||||
---
|
||||
|
||||
|
||||
_or, how to tell other computers to do cool things_
|
||||
|
||||
---
|
||||
@@ -25,7 +24,7 @@ mosh user@tilde.club
|
||||
|
||||
ssh is also available on port 443 using the address `ssh.tilde.club`:
|
||||
|
||||
ssh -p 443 user@ssh.tilde.club
|
||||
ssh -p 443 user@ssh.tilde.club
|
||||
|
||||
this is useful if you're on a limited public network that blocks non-http
|
||||
ports.
|
||||
@@ -75,7 +74,7 @@ be hacked) and for me, your humble sysadmin (less administration than passwords)
|
||||
|
||||
SSH supports a handful of types of cryptographic keys. The most used are [RSA](
|
||||
<https://en.wikipedia.org/wiki/RSA_(cryptosystem)>) and the more modern [Ed25519](
|
||||
https://en.wikipedia.org/wiki/EdDSA#Ed25519).
|
||||
https://en.wikipedia.org/wiki/EdDSA#Ed25519).
|
||||
|
||||
RSA is the de-facto standard and is supported everywhere (just choose a big
|
||||
enough key like 4096 bits to be secure). Ed25519 is designed to be faster and
|
||||
@@ -143,9 +142,9 @@ where username is your username (~benharri would use `ssh benharri@tilde.club`)
|
||||
|
||||
#### Ensure OpenSSH is installed
|
||||
|
||||
1. Open Settings, select Apps, then select Optional Features
|
||||
1. Scan the list to see if the OpenSSH is already installed. If not, at the top of the page, select Add a feature, then...
|
||||
1. Find OpenSSH Client, then select Install
|
||||
1. Open Settings, select Apps, then select Optional Features
|
||||
1. Scan the list to see if the OpenSSH is already installed. If not, at the top of the page, select Add a feature, then...
|
||||
1. Find OpenSSH Client, then select Install
|
||||
|
||||
#### generating your keypair
|
||||
|
||||
@@ -183,7 +182,6 @@ ssh username@tilde.club
|
||||
|
||||
where username is your username (~benharri would use `ssh benharri@tilde.club`)
|
||||
|
||||
|
||||
Note: If you generated your key to the location above (%USERPROFILE%\\.ssh\\...) then you will be able to SSH to your tilde server without having to specify the location of the key. That folder is the default used by SSH and it will be found automatically. If you generated your keys in a different location or moved them, you will need to specify the full path to the private key.
|
||||
|
||||
```cmd
|
||||
|
||||
@@ -9,15 +9,14 @@ On OS X:
|
||||
- Download the lastest version of OSXFUSE: [http://osxfuse.github.io/](http://osxfuse.github.io/)
|
||||
- `brew install sshfs`
|
||||
|
||||
|
||||
Now you can mount a ssh server by issuing the following commands:
|
||||
|
||||
mkdir tilde.club
|
||||
sshfs jeffbonhag@tilde.club:/home/jeffbonhag tilde.club
|
||||
mkdir tilde.club
|
||||
sshfs jeffbonhag@tilde.club:/home/jeffbonhag tilde.club
|
||||
|
||||
If you're on Linux and want to make an entry in your fstab:
|
||||
|
||||
mkdir -p /mnt/tilde.club
|
||||
mkdir -p /mnt/tilde.club
|
||||
|
||||
Put an entry in your `/etc/fstab` like this:
|
||||
|
||||
@@ -25,12 +24,12 @@ jeffbonhag@tilde.club:/home/jeffbonhag /mnt/tilde.club fuse.sshfs _netdev,user,
|
||||
|
||||
then you can do
|
||||
|
||||
mount /mnt/tilde.club
|
||||
mount /mnt/tilde.club
|
||||
|
||||
If you want to use an identity file to mount instead of a password, this may
|
||||
work (untested):
|
||||
|
||||
jeffbonhag@tilde.club:/home/jeffbonhag /mnt/tilde.club fuse.sshfs _netdev,user,idmap=user,transform_symlinks,identityfile=/home/USER_C/.ssh/id_rsa,allow_other,default_permissions,uid=USER_C_ID,gid=GROUP_C_ID,umask=0 0 0
|
||||
jeffbonhag@tilde.club:/home/jeffbonhag /mnt/tilde.club fuse.sshfs _netdev,user,idmap=user,transform_symlinks,identityfile=/home/USER_C/.ssh/id_rsa,allow_other,default_permissions,uid=USER_C_ID,gid=GROUP_C_ID,umask=0 0 0
|
||||
|
||||
Although -- do you really need to do this? It just occurred to me that the
|
||||
first command is just as easy, and probably makes more sense.
|
||||
|
||||
@@ -12,4 +12,3 @@ for example, if you're in eastern time, add something like this
|
||||
`export TZ="America/Detroit"`
|
||||
|
||||
to your `.bashrc`
|
||||
|
||||
|
||||
@@ -5,8 +5,8 @@ author:
|
||||
- ant
|
||||
todo:
|
||||
- describe the common entry prefixes on:
|
||||
- groups
|
||||
- threads
|
||||
- groups
|
||||
- threads
|
||||
- articles
|
||||
- arrange the principal keys in the way most convenient to the learner:
|
||||
- with grouping by relative function
|
||||
@@ -321,7 +321,7 @@ The most important keys are:
|
||||
Key Level Action
|
||||
---- ------ --------------------
|
||||
H SGTA toggle on-screen help,
|
||||
useful for learning
|
||||
useful for learning
|
||||
|
||||
h SGTA list available commands
|
||||
|
||||
@@ -361,7 +361,7 @@ c/C SGTA mark group (SG) or thread (TA) as read
|
||||
and move to the next unread (C) one
|
||||
|
||||
K GTA mark current thread (G) or article (TA)
|
||||
as read and move to the next unread one
|
||||
as read and move to the next unread one
|
||||
|
||||
z SGA mark group/base article/article unread
|
||||
|
||||
|
||||
@@ -176,7 +176,7 @@ your ~/.ttbp directory entirely. **you might want to back up your
|
||||
* to modify your stylesheet, edit your ~/.ttbp/config/style.css
|
||||
* to modify the page header, edit your ~/.ttbp/config/header.txt
|
||||
* there's a place marked off in the default header where you can safely put
|
||||
custom HTML elements!
|
||||
custom HTML elements!
|
||||
* to modify the page footer, edit your ~/.ttbp/config/footer.txt
|
||||
|
||||
### general tips/troubleshooting
|
||||
|
||||
@@ -22,12 +22,12 @@ You can invoke *The Traditional Vi* in several ways
|
||||
|
||||
1. by the full path to the executable:
|
||||
|
||||
/usr/archaic/bin/vi
|
||||
/usr/archaic/bin/vi
|
||||
|
||||
2. by adding it as an alias to your shell's `rc` file
|
||||
(`~/.bashrc` for *Bash*), e.g:
|
||||
|
||||
alias tvi=/usr/archaic/bin/vi
|
||||
alias tvi=/usr/archaic/bin/vi
|
||||
|
||||
and then invokng *Vi* by typing `tvi`,
|
||||
|
||||
@@ -36,8 +36,8 @@ You can invoke *The Traditional Vi* in several ways
|
||||
in your shell's profile script
|
||||
(for *Bash*, `~/.bash_profile` or `~/.profile`):
|
||||
|
||||
export PATH="/usr/archaic/bin/:$PATH"
|
||||
export MANPATH="/usr/archaic/share/man/man:$MANPATH"
|
||||
export PATH="/usr/archaic/bin/:$PATH"
|
||||
export MANPATH="/usr/archaic/share/man/man:$MANPATH"
|
||||
|
||||
The latter method has the advantage
|
||||
of affecting subshells,
|
||||
@@ -68,10 +68,10 @@ and the `EDITOR` environment variale.
|
||||
[its source](https://sourceforge.net/p/ex-vi/code/).
|
||||
You only need to locate the following line in `Makefile`:
|
||||
|
||||
TERMLIB = termlib
|
||||
TERMLIB = termlib
|
||||
|
||||
and replace the value with `curses` or `ncurses`,
|
||||
depending on your preferred terminal library.
|
||||
Now you can build and install the project with:
|
||||
|
||||
make && make install
|
||||
make && make install
|
||||
|
||||
@@ -68,11 +68,11 @@ You can do this right from the Github GUI!
|
||||
|
||||
1. Grab a copy of the site's source code
|
||||
|
||||
git clone https://github.com/tildeclub/site tilde.club && cd tilde.club/wiki
|
||||
git clone https://github.com/tildeclub/site tilde.club && cd tilde.club/wiki
|
||||
|
||||
1. Make a new article or update an existing one. Make sure that you create the
|
||||
title, author, and category keys in the yaml frontmatter (see an existing
|
||||
article for an example).
|
||||
article for an example).
|
||||
|
||||
3. submit the code via a PR on github or with git-send-email(1) to root@tilde.club
|
||||
see [git-send-email.io](https://git-send-email.io) for more info on how to use
|
||||
@@ -98,16 +98,16 @@ of technological liberation...
|
||||
In case you prefer to work on your edits directly inside Tilde.club,
|
||||
run a command like this to clone the repository:
|
||||
|
||||
git clone /usr/share/nginx/html tildeclub-site
|
||||
git clone /usr/share/nginx/html tildeclub-site
|
||||
|
||||
If you prefer to clone to your local machine via SSH instead,
|
||||
use **one** of the following commands:
|
||||
|
||||
git clone ssh://USERNAME@tilde.club/usr/share/nginx/html tildeclub-site
|
||||
git clone USERNAME@tilde.club:/usr/share/nginx/html tildeclub-site
|
||||
git clone ssh://USERNAME@tilde.club/usr/share/nginx/html tildeclub-site
|
||||
git clone USERNAME@tilde.club:/usr/share/nginx/html tildeclub-site
|
||||
|
||||
* Don't forget to substitute <var>USERNAME</var> with your Tilde.club username
|
||||
(else SSH would fail logging you in for the access).
|
||||
(else SSH would fail logging you in for the access).
|
||||
* The first command works even with a very old Git version.
|
||||
|
||||
Note that you cannot issue <q>`git push`</q> from a repository cloned these ways
|
||||
@@ -117,11 +117,11 @@ of technological liberation...
|
||||
* This Git repository is also officially available online at two places:
|
||||
|
||||
* [GitHub](https://github.com/tildeclub/site/)
|
||||
(requires JavaScript and latest browser to view)
|
||||
(requires JavaScript and latest browser to view)
|
||||
* [Tildeforge](https://tildeforge.dev/TildeClub/site)
|
||||
(read-only mirror,
|
||||
replicates from GitHub;
|
||||
do not need JavaScript to view)
|
||||
(read-only mirror,
|
||||
replicates from GitHub;
|
||||
do not need JavaScript to view)
|
||||
|
||||
The <q>`git clone`</q> command also work directly with these URLs;
|
||||
although note that pull requests are accepted only on GitHub.
|
||||
@@ -144,9 +144,9 @@ of technological liberation...
|
||||
(and text files on Tilde.club's Gopher site)
|
||||
is specified in <q>`wiki/Makefile`</q> in the repository.
|
||||
* The Gophermap of the wiki
|
||||
is generated dynamically on Gopher request however;
|
||||
see <q>`wiki/gophermap`</q> and <q>`wiki/txtlist.sh`</q> in the repository
|
||||
for this part.
|
||||
is generated dynamically on Gopher request however;
|
||||
see <q>`wiki/gophermap`</q> and <q>`wiki/txtlist.sh`</q> in the repository
|
||||
for this part.
|
||||
* The copyright license of this repository is
|
||||
[GNU General Public License](https://www.gnu.org/licenses/gpl.html),
|
||||
_any version_
|
||||
|
||||
Reference in New Issue
Block a user