An open-source entry in TopGit's GitHub warehouse: EbookFoundation/regluit, 59 stars, Python. webapp for unglue.it
Snapshot summary built from the project's own GitHub metadata — there's no written TopGit review yet. The page will update automatically when a full review is published.
WHY NO REVIEW YET
TopGit writes full reviews for the most-starred, most-requested repositories. This page is a snapshot until then — see the READ ME tab for the original README in full.
regluit - "The Unglue.it web application and website"
This repo - https://github.com/EbookFoundation/regluit will eventually be the place for collaborative development for Unglue.it. Add issues and submit pull requests here. As of September 1, 2019, https://github.com/Gluejar/regluit is still being used for production builds.
The first version of the unglue.it codebase was a services-oriented project named "unglu".
We decided that "unglu" was too complicated, so we started over and named the new project "regluit".
regluit is a Django project that
contains four main applications: core, frontend, api and payment that can be deployed
and configured on as many ec2 instances that are needed to support traffic.
The partitioning between these modules is not as clean as would be ideal. payment is particularly messy because we had to retool it twice because we had to switch from Paypal to Amazon Payments to Stripe.
regluit was originally developed on Django 1.3 (python 2.7) and currently runs on Django 1.8.
Development (Vagrant + Virtualbox)
The recommended method for local development is to create a virtual machine with Vagrant and Virtualbox.
With this method, the only requirements on the host machine are virtualbox and vagrant.
Vagrant will use the ansible-local provisioner, therefore installing python and ansible on the host machine is not necessary.
Navigate to the base directory of the cloned repo (where Vagrantfile is located).
Run vagrant up to create the VM, install dependencies, and start necessary services.
Note: This step may take up to 15 minutes to complete.
Once the VM has been created, run vagrant ssh to log in to the virtual machine you just created. If provisioning was successful, you should see a success message upon login.
If virtualenv doesn't activate upon login, you can do it manually by running cd /opt/regluit && source venv/bin/activate
Within the VM, run ./manage.py runserver 0.0.0.0:8000 to start the Django development server.
On your host machine, open your web browser of choice and navigate to http://127.0.0.1:8000
Instructions for other platforms (Windows/OSX):
Steps are essentially the same, except for the installation of Vagrant and Virtualbox. Refer to each package's documentation for specific installation instructions.
NOTE: If running Windows on your host machine, ensure you are running vagrant up from an elevated command prompt, e.g. right click on Command Prompt -> Run As Administrator.
Development (Host Machine)
Here are some instructions for setting up regluit for development on
an Ubuntu system. If you are on OS X see notes below
to install python-setuptools in step 1:
Ensure MySQL and Redis are installed & running on your system.
Edit settings/me.py with proper mysql and redis configurations.
Edit settings/keys/common.py and settings/keys/host.py with account and key information OR if you have the ansible vault password, run ansible-playbook create_keys.yml inside the vagrant directory.
django-admin.py loaddata core/fixtures/initial_data.json core/fixtures/bookloader.json populate database with test data to run properly.
django-admin.py celeryd --loglevel=INFO start the celery daemon to perform asynchronous tasks like adding related editions, and display logging information in the foreground.
django-admin.py celerybeat -l INFO to start the celerybeat daemon to handle scheduled tasks.
django-admin.py runserver 0.0.0.0:8000 (you can change the port number from the default value of 8000)
make sure a redis server is running
Point your browser to http://localhost:8000/
CSS development
We used Less version 2.8 for CSS. http://incident57.com/less/. We use minified CSS.
New CSS development is using SCSS. Install libsass and django-compressor.
Production Deployment
OBSOLETE
Below are the steps for getting regluit running on EC2 with Apache and mod_wsgi, and talking to an Amazon Relational Data Store instance.
Instructions for setting please are slightly different.
create an ubuntu ec2 instance (e.g, go http://alestic.com/ to find various ubuntu images)
Study the latest changes in the master branch, especially keep in mind how
it has changed from what's in production.
Update the production branch accordingly. If everything in master is ready to be moved into production, you can just merge master into production. Otherwise, you can grab specific parts. (How to do so is something that should probably be described in greater detail.)
Login to unglue.it and run /opt/regluit/deploy/update-prod
OS X Developer Notes
To run regluit on OS X you should have XCode installed
Install virtualenvwrapper according
to the process at http://blog.praveengollakota.com/47430655:
sudo easy\_install pip
sudo pip install virtualenv
pip install virtualenvwrapper
Edit or create .bashrc in ~ to enable virtualenvwrapper commands:
In the above web site, the path to virtualenvwrapper.sh was
/Library/Frameworks/Python.framework/Versions/2.7/bin/virtualenvwrapper.sh
In Snow Leopard, this may be /usr/local/bin/virtualenvwrapper.sh
Configure Terminal to automatically notice this at startup:
Terminal –> Preferences –> Settings –> Shell
Click "run command"; add source ~/.bashrc
If you get 'EnvironmentError: mysql_config not found'
edit the line ~/.virtualenvs/regluit/build/MySQL-python/setup_posix.py
mysql_config.path = "mysql_config"
to be (using a path that exists on your system)
Download the selenium server:
http://selenium.googlecode.com/files/selenium-server-standalone-2.5.0.jar
Start the selenium server:
'java -jar selenium-server-standalone-2.5.0.jar'
MARC Records
For unglued books with existing print edition MARC records
Get the MARCXML record for the print edition from the Library of Congress.
Find the book in catalog.loc.gov
Click on the permalink in its record (will look something like lccn.loc.gov/2009009516)
Download MARCXML
At /marc/ungluify/ , enter the unglued edition in the Edition field, upload file, choose license
The XML record will be automatically...
converted to suitable MARCXML and .mrc records, with both direct and via-unglue.it download links
written to S3
added to a new instance of MARCRecord
provided to ungluers at /marc/
For CC/PD books with existing records that link to the ebook edition
Use /admin to create a new MARC record instance
Upload the MARC records to s3 (or wherever)
Add the URLs of the .xml and/or .mrc record(s) to the appropriate field(s)
Select the relevant edition
Select an appropriate marc_format:
use DIRECT if it links directly to the ebook file
use UNGLUE if it links to the unglue.it download page
if you have records with both DIRECT and UNGLUE links, you'll need two MARCRecord instances
if you have both kinds of link, put them in separate records, as marc_format can only take one value ungluify_record.py should only be used to modify records of print editions of unglued ebooks. It will not produce appropriate results for CC/PD ebooks.
For unglued ebooks without print edition MARC records, or CC/PD books without ebook MARC records
Get a contract cataloger to produce quality records (.xml and .mrc formats)
we are using ung[x] as the format for our accession numbers, where [x] is the id of the MARCRecord instance, plus leading zeroes
Upload those records to s3 (or wherever)
Create a MARCRecord instance in /admin
Add the URLs of the .xml and .mrc records to the appropriate fields
Select the relevant edition
Select an appropriate marc_format:
use DIRECT if it links directly to the ebook file
use UNGLUE if it links to the unglue.it download page
if you have records with both DIRECT and UNGLUE links, you'll need two MARCRecord instances
if you have both kinds of link, put them in separate records, as marc_format can only take one value
EbookFoundation/regluit has 59 GitHub stars — refresh the page for the live number, or check github.com/EbookFoundation/regluit. TopGit mirrors GitHub's count but does not claim minute-by-minute accuracy.
Is EbookFoundation/regluit open source?
TopGit's metadata for EbookFoundation/regluit does not record a license. Most public repositories on GitHub ARE open source, but the exact terms vary — verify by opening the LICENSE file directly.
What is EbookFoundation/regluit?
EbookFoundation/regluit (EbookFoundation/regluit) is a Python project on GitHub. From the project's own README: webapp for unglue.it
Where can I see EbookFoundation/regluit in action?
The project maintains a homepage at http://unglue.it. The README tab on this page also usually contains screenshots and a quickstart.
Where do I read more about EbookFoundation/regluit?
This TopGit page is a snapshot — the READ ME tab shows the project's own README content (links stripped, images preserved). The GitHub repository at github.com/EbookFoundation/regluit is the definitive source.
Read full README in the tab above.
Is regluit worth your time?
ChatGPT, Claude and Perplexity can all read this page. Ask one of them what it makes of regluit.