Word Muncher is an open-source web-application to help you create and learn with vocabulary sheets.
To set up a Word Muncher instance, you will need to have Node Version Manager already installed. You can then clone the repository:
git clone https://github.com/clockback/wordmuncher.gitYou must know which version of Word Muncher you wish to use, and check this out in a detached head state:
cd wordmuncher
git switch --detach v0.1.0You can then use the correct version of NVM (specified in .nvmrc):
nvm install 18
nvm use 18Run a clean installation and build the application:
npm ci
npm run buildYou then need to set up the database.
NODE_ENV=production npm run migrate
NODE_ENV=production npm run seedBefore you run your server, if you want Word Muncher to be accessible to other
computers on your network, you must make the server accessible on port 80 (it is
presently hosted at port 3000). How you do this is up to you, but a simple solution
is to use iptables:
sudo apt-get install iptables
sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 3000
sudo sh -c "iptables-save > /etc/iptables/rules.v4"You can then run your server:
NODE_ENV=production npm run cron & npm run startTo run in development (at port 3000), one run:
npm run cron & npm run devBefore opening a pull request, ensure your code passes the following quality checks:
npm run lint
npm run spellcheckAnd that it is correctly formatted:
npm run formatCopyright The Word Muncher Contributors.
This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License along with this program. If not, see http://www.gnu.org/licenses/.