CherryPy App that serves dynamic content for Project Gutenberg
 
 
Go to file
aundus 6a37cd9cc4 fix bookId reference 2021-05-19 11:28:23 -04:00
templates fix bookId reference 2021-05-19 11:28:23 -04:00
test facilitate testing on localhost for CloudStorage 2019-04-24 13:35:56 -04:00
.gitignore Initial commit 2019-03-28 09:32:22 -04:00
AdvSearchPage.py use htmlfiller filter 2021-04-27 11:59:55 -04:00
BaseFormatter.py remove honeypot 2021-04-27 13:47:35 -04:00
BaseSearcher.py remove unused js vars 2021-04-08 13:07:49 -04:00
BibrecPage.py cleanup 2020-09-03 14:04:42 -04:00
CherryPy.conf remove RamSession patch 2021-04-23 09:33:12 -04:00
CherryPyApp.py remove cache-buster param 2021-05-06 18:46:43 -04:00
CloudStorage.py stop using buitins as global 2019-07-26 11:54:24 -04:00
ConnectionPool.py integrate ORM with CherryPy pool 2021-04-23 19:46:35 -04:00
CoverPages.py fix issue with books missing titles 2020-08-27 17:59:16 -04:00
Dropbox.py always close cloudstorage sessions 2019-06-19 15:03:16 -04:00
DublinCoreI18n.py stop using buitins as global 2019-07-26 11:54:24 -04:00
Formatters.py cleanup 2020-09-03 14:04:42 -04:00
GDrive.py always close cloudstorage sessions 2019-06-19 15:03:16 -04:00
HTMLFormatter.py remove honeypot 2021-04-27 13:47:35 -04:00
Icons.py author to PG 2020-09-15 13:49:08 -04:00
JSONFormatter.py initial commit 2019-03-28 09:45:03 -04:00
LICENSE Initial commit 2019-03-28 09:32:22 -04:00
MSDrive.py always close cloudstorage sessions 2019-06-19 15:03:16 -04:00
OPDSFormatter.py initial commit 2019-03-28 09:45:03 -04:00
Page.py stop using buitins as global 2019-07-26 11:54:24 -04:00
Pipfile incorporate some version bumps 2021-04-23 09:42:31 -04:00
Pipfile.lock incorporate some version bumps 2021-04-23 09:42:31 -04:00
QRCodePage.py initial commit 2019-03-28 09:45:03 -04:00
README.md errata 2019-04-20 14:34:09 -04:00
SearchPage.py rip out all mobile site remnants 2020-09-03 13:57:11 -04:00
Sitemap.py initial commit 2019-03-28 09:45:03 -04:00
StartPage.py rip out all mobile site remnants 2020-09-03 13:57:11 -04:00
SuggestionsPage.py initial commit 2019-03-28 09:45:03 -04:00
SupportedLocales.py initial commit 2019-03-28 09:45:03 -04:00
TemplatedPage.py initial commit 2019-03-28 09:45:03 -04:00
Test.py separate keys and 2019-04-20 14:34:53 -04:00
Timer.py initial commit 2019-03-28 09:45:03 -04:00
UserAgents.py initial commit 2019-03-28 09:45:03 -04:00
__init__.py initial commit 2019-03-28 09:45:03 -04:00
autocat3.service Update autocat3.service 2021-04-22 14:20:35 -07:00
configuring.txt fix reversion 2020-08-27 21:10:51 -04:00
diagnostics.py fix permissions 2019-09-09 12:58:29 -04:00
errors.py fix permissions 2019-09-09 12:58:29 -04:00
i18n_tool.py initial commit 2019-03-28 09:45:03 -04:00
test.conf even test app credentials 2019-04-20 14:32:58 -04:00

README.md

autocat3_original

Introduction

autocat3 is a python-based application used for supporting Project Gutenberg. CherryPy is used as the web framwork which is easy to develop. If mainly implemented the search functionality and rate limiter. Also return results pages based on templates.

How it works.

Currently, the dev environment and production environment share the same server login1. The production version of autocat3 is on gutenberg2. This application in this repository is on gutenberg1.

Previously, the old version of autocat3 relies on dependencies installed directly on the system. To make it more flexible and easy to deploy, we tend to use virtual env rather than the previous method. To use virtual env, we use pipenv instead of using pip and virtual env separately.

The virtual env directory is on the default directory while we run pipenv --three. So it's not in this directory. (we are only using python3 for this project because CherryPy will discard the python2 in the future).

To start the service/application, we use systemd to do that. the autocat3.service file is written under /etc/systemd/systemdirectory. To start:

  1. make sure sudo systemctl daemon-reload everytime we edit the systemd unit file
  2. sudo systemctl start autocat3.service to start service
  3. sudo systemctl stop autocat3.service to stop service
  4. sudo systemctl status autocat3.service to check the running status of the service

How to install

Currently, we use the following steps to deploy autocat3 on a different server.

  1. Create Virtual env: pipenv --three to create a virtual env for current working directory(current project)
  2. Install packages/python modules: pipenv install to install all the packages in the Pipfile. If there is a requirements.txt file output from pip freeze, the command will automatically add the package names into Pipfile and install the packages and keep them in the Popfile for later use.
  3. lock the packages: pipenv lock to be used to produce deterministic builds.
  4. Check the virtual env path: pipenv --venv
  5. Start virtual env: pipenv shell

Copyright 2009-2010 by Marcello Perathoner