An open-source web application that allows you to publish web-based editions of books and other text-based media so that users can freely read and annotate these texts is known as Manifold .Manifold can be incorporated into classrooms, coding boot camps, workshops, libraries, and other venues where you may want to exchange knowledge through collaborative reading. It is especially suited for the use with open access (OA) materials and open educational resources (OERs). With the funding of Mellon Foundation , manifold was actually made with the scholarly monograph in mind, but many forms of publishing (journals, pamphlets, collections) can be collected, organized, read and annotated on the platform. In this blog you will see how Manifold can be set on a server and add text to your installation.
The Vital Necessities
For Manifold to run on a website with a URL, you must set up a fully qualified domain name. For guidance on setting this up, you should read documentation from your hosting provider. Manifold developers advise against attempting to install Manifold in a shared hosting environment for security and stability reasons .Manifold consists of a number of distinct services , each of which actually requires RAM to function correctly. You will likely need to enable swap memory or risk consuming all available memory.You can set up the host name manually in /etc/manifold/manifold.rb if you are currently not set up with your domain name at the moment , and then reconfigure the application . These are thus the essentials you need to follow up
Download and Install the Manifold Package
You will have to download Manifold for Ubuntu 18.04. Very first you will have to move into the temporary directory to download the package , as it is removable later: cd /tmp. Then you will have to use curl command with the -O flag to write output to a local file which will download the package to your server:
curl -O https://storage.googleapis.com/manifold-dist/ubuntu18/manifold_2.0.0~rc.1-1_amd64.deb
Then you will have to install the package : sudo dpkg -i manifold_2.0.0~rc.1-1_amd64.deb .After you run this command, you will receiving output which includes the following lines:
Output ... Manifold Scholarship manifold: Thank you for installing Manifold! ...
As soon as you receive these lines , you can continue to the next step which is the upgrading of the Firewall.
You will have a ufw firewall in place on your server if you have followed the basic server setup. In order to allow traffic through http on the web, you should open port 80 : sudo ufw allow 80 . After this you will receive an output that this rule has been added , which you can see by checking your firewall status by typing sudo ufw status . After you type this status you will be able to see the current rules on your server.
This will be true if you received the following output that matches your domain name:
Output ... manifold: Manifold should be reachable at http://your-manifold-url ...
- If you already have a fully-qualified domain name set up on this server, you may not need to do more configurations and if you’re using the server’s IP address for now, or if the output above did not match your URL, you can configure Manifold to point to the correct place. You will have to create a file at /etc/manifold/manifold.rb , which you will have to use to configure and manage the various services that will be compromising Manifold. Then you need to open this file in any of your preferable text editor, also you can use nano: sudo nano /etc/manifold/manifold.rb. Now within this file, look for the external_url. Set this either as your server’s IP address or you can set this to the domain name of your Manifold installation.
etc/manifold/manifold.rb ... ## Manifold URL ##! URL on which Manifold will be reachable. ##! For more details on configuring external_url see: external_url 'http://your-IP-or-your-URL'
If your website is example.com, your line would look like this: external_url ‘http://example.com’. If your IP is 192.0.2.0, your line would look like this:external_url ‘http://192.0.2.0’. Now you will have to Save and exit the file by pressing CTRL + X, then y to confirm that you want to save it, then ENTER.
- Now, save and exit the file. Do this by pressing CTRL + X, then y to confirm that you want to save it, then ENTER. At this certain point of time you can reconfigure manifold with the following command: sudo /usr/local/bin/manifold-ctl reconfigure. The Manifold app will now deploy the changes that has been made in the file to regenerate new setting and configuration files and this process will be complete once you receive similar output like the following:
Output Chef Client finished, 262/347 resources updated in 51 seconds manifold Reconfigured!
You can now visit either the URL or the IP address of your server. You should see an empty Manifold home page.
Image Source: https://do.co/2Fytzqx
With the Manifold app being served, you can continue to the next step that6 is the accessing of the Backend.
Access the Backend
All content that is stored in Manifold (including texts, projects, authors, resources, and users) is managed through Manifold’s backend web interface via the /backend path.
If you want to access the backend, you will need to make an administrative user on your server. You will need to call a command to create this administrative user through the manifold-api executable. You will be need to put your own details in order to run this command , which will also include your email address , your password , your first name and last name , in the format mentioned below : sudo manifold-api manifold:user:create:admin[“firstname.lastname@example.org”,”password”,”first_name”,”lastName”]. Then you need to substitute your own information in the command as in the following example: sudo manifold-api manifold:user:create:admin[“email@example.com”,”l1ghth0us3″,”Virginia”,”Woolf”]. Once you are done with running the command , you will be receiving the similar output:
Output INFO: A User has been created. Its ID is 4a38dbb4-212b-4387-ad32-5e014459cd11
Once you’ve created this user, return to your browser and click on the avatar icon in the top right corner of Manifold to login.
Image Source: https://do.co/2OXtnka
Then you will have to input your credentials and login successfully, you’ll see an ENTER ADMIN MODE button in the header.
Create a Project:
From the backend, you’ll be taken to where your future projects will live.
Image Source: https://do.co/2qWY2Ew
Now if you want to create a new project, you will have to click on Projects on the top menu bar, then on the Add a New Project button, after which you will promoted to enter a title You will be prompted to enter a title and an optional subtitle and description. For which you can enter How To Code in Python 3 as the title. Now when you have entered the information you can save the project and press Continue. After you create a new project, it will be automatically saved in the draft mode. Projects that are drafts are only visible to administrative users who are logged in. Using the tabs on the left of the detail view of your project, you can add a thumbnail, upload a hero image or banner for the public-facing project page, also you can add metadata and additional resources.As Manifold provides you with a repository for texts, the first thing you’ll likely want to do is add a text. In order to ingest the text file to your project, click on the texts tab.
Image Source: https://do.co/2R3R5wX
You can also upload EPUBs, Markdown and HTML files, or Google Docs to Manifold. For demonstration purposes, we’ll be uploading the How To Code in Python 3 EPUB into our Manifold installation. You can link to the eBook’s EPUB directly using this link: https://assets.digitalocean.com/books/python/how-to-code-in-python.epub
In order to bring in the text, click on the Add a new text button to begin the ingestion process.
Image Source: https://do.co/2Ty657T
In our demonstration, we’ll use the link above, but you can alternatively upload or drag a file onto the cloud icon to upload a file from your local hard drive. When you have staged the file, you can press Continue. The app will connect to the Manifold websocket, and you can now click on Ingest to commence the upload process.
Depending on the hosting environment and the size of the file you’re uploading, it may take a few minutes for Manifold to ingest the text. You should see a log showing the status output of the ingestion. When this process is complete, you’ll see a Complete button at the bottom of the dialog box.
Image Source: https://do.co/2DC9xJ2
Once you press the Complete button, you’ll be returned to your project.
You’ll see your text added under UNCATEGORIZED. Use the up arrow to move the file into the PUBLISHED state.
Image Source: https://do.co/2FCTwVO
Image Source: https://do.co/2zljhod
Now you need to click on the PREVIEW link below the project title next to the eye icon to view your current project. On the preview side, you should see a START READING button below the title.
Image Source: https://do.co/2S9YcEd
Once you press this button, the text should open in the Manifold reader.
Image Source: https://do.co/2PL3x88
When you are satisfied with your project, from the General tab of the administrative interface, you can toggle the visibility to turn off Draft Mode.
Image Source: https://do.co/2QadMlX
Now, the project should be available on your main page.
Image Source: https://do.co/2DEHlFD
At this certain point, you can continue working on your project to add metadata, images, and more. You will always have to follow that if you have a domain associated with your Manifold page, and are expecting users to contribute files, it is best practices to secure your website and access it via the HTTPS protocol.
Conclusion: And therefore you have your Manifold installed on your Ubuntu 18.04 server. If all went as planned, you’re well on your way to building out your own projects and publishing your own texts on Manifold.
Header Image Source: https://bit.ly/2OX3DnH