Deployment: Difference between revisions

From Poetry MP Wiki
Jump to navigation Jump to search
Admin>Soulmate
(Created page with "= Device Requirements = <span id="ios"></span> == iOS == iPhone X and iOS 14 or above. iPad 5 and iOS 14 or above. <span id="android"></span> == Android == Andoid 7 <span id="windows-pc"></span> == Windows PC == Windows 7, latest Chrome. <span id="mac"></span> == Mac == Catalian, Safari 13.1, Chrome 104 Yosemite, Chrome 87 <span id="production-build"></span> = Production Build = <span id="front-end"></span> == Front End == After running “buildProd.bat”,...")
 
Admin>Soulmate
mNo edit summary
Line 1: Line 1:
<span id="device-requirements"></span>
= Device Requirements =
= Device Requirements =



Revision as of 21:14, 30 August 2022

Device Requirements

iOS

iPhone X and iOS 14 or above.

iPad 5 and iOS 14 or above.

Android

Andoid 7

Windows PC

Windows 7, latest Chrome.

Mac

Catalian, Safari 13.1, Chrome 104

Yosemite, Chrome 87

Production Build

Front End

After running “buildProd.bat”, do the following: 1. Move “ngsw-worker.js” and “ngsw.json” from folder scripts to root. 2. In “ngsw.json”, replace all urls to js file with /scripts/ prefix; and make "index": "/../index.html".

Static Readonly

PoemApp can be a static read only Website, without a Web service backend. The SPA frontend codes may load static JSON data from the Web server, through being configured as StaticReadonly. The poems data is exported into JSON files using the full app. Such deployment makes a static content Website with rich user interfaces and user interactions, including search functions. This is fairly similar to CHM data format and the CHM browser. The initial site title is “Poetry Collection” as defined in the title tag of index.html. And the site title is defined in siteconfig.js as “siteName”.

Deploy to ISP Provided Website

An ISP often by default provides a customer with the such Website or Home Pages Service: * http://YourUserName.superisp.com, you have a Website. * http://users.isp.com/YourUserName, you have Home Pages Service, under a Website http://users.isp.com shared by all users/customers.

Generally you may use FTP to upload your static contents to there. For more details of uploading, please refer to the instructions provided by your ISP.

ISP gives you a Website

Good luck. Your SPA should be working right away at http://YourUserName.superisp.com.

If your SPA shouldn’t be your home page content, you may want the access URL to your SPA to be such: http://YourUserName.superisp.com/MySPA. For example, you would substitute MySPA with poems.

  1. Create folder MySPA under the Web root.
  2. Modify the base tag of index.html to <base href="/MySPA/">
  3. Upload the SPA static contents.

Through such method, you may host multiple Single Page Applications.

ISP give you a path to a Websites shared by all users

To host your SPA at http://users.isp.com/YourUserName, modify the base tag of index.html to <base href="/YourUserName/">.

To host your SPA at http://users.isp.com/YourUserName/MySPA, modify the base tag of index.html to <base href="/YourUserName/MySPA/">.

Prepare Poetry Contents

Customize Website for the Sake of PWA

If you don’t expect your users to install the Web app as a mobile app, you don’t have to deal with such customization.

PWA

Both the static readonly and the full app are designed with PWA in mind. You may modify the Web app manifest “manifest.webmanifest” according to the instruction at https://web.dev/add-manifest/. And generally you just need to modify: * Name * Short_Name * Description

The default values is for the full app, therefore, it is almost certain you should change them.

SEO

In Index.html, There is a script section like:

<syntaxhighlight lang="html"><script type="application/ld+json"> { "@context": "http://schema.org", "@type": "WebApplication", "description": "Poetry collection", "keywords": "Poetry,Poems,Poet,Muse", "browserRequirements": "requires HTML5 support", } </script></syntaxhighlight> Web spiders will pick up this and make appropriate indexing.

Deploy to Github Pages

GitHub gives you are Website like https://YourUserName.github.io. Each repository may have a home page like https://YourUserName.github.io/repo1 and https://YourUserName.github.io/repo2 and so on. For more details of uploading, please check: https://pages.github.com/ or https://docs.github.com/en/pages.

The following descriptions assume that you have read the GitHub Pages manual, and the repository gh-pages is already in place.

Prerequisites: 1. Production build. Curently I need to change <base href="/scripts/"> to <base href="/">. Such hack is hopefully until NG 15. 1. Copy the build to the gh-pages repository. 1. Modify index.html and ensure <base href="/poems/"> or alike. For Chinese, optionally do the following: 1. Copy index.html into chinese.html, and ensure <script src="conf/siteconfig2nd.js"></script> 1. Modify conf/siteconfig.js, and set staticReadonly=true, optionally set siteName. For Chinese, optionally do the following: 1. For additional Chinese edition set hasSecondary=true. 2. Copy siteconfig.js into siteconfig2nd.js, and set isSecondary=true. 3. Optionally set siteName in Chinese. 1. Using the full app, export the published, 1. Rename the JSON files to primary.json and copy to the data folder. For Chinese, optionally do the following: 1. Export the 2nd edition of the published,and copy to data/secondary.json.

  1. Optionally exported image files using the full app, and copy files to folder “api/files/file”.
  2. Commit and push
  3. Test

Casual App Update

  1. Production build
  2. Update the following files:
    1. Clear folder scripts and fill with new files
    2. index.html and alter base href to “/poems/” or alike.
    3. optionally updat chinese.html. This can be done through: copy index.html into chinese.html, and ensure <script src="conf/siteconfig2nd.js"></script>
  3. Commit and push.

If there are changes in assets, copy things accordingly.

Customize Styles After Deployment

font.css is not amongh the NG build process and is referenced in index.html directly. This is an interface for customization of some sections of the app.

You can introduce new fonts and new styles to respective sections through altering font.css and copying some font files (WOFF2 typically) under assets/fonts. For more details, check readme.MD in poemsng\src\assets.

There’s a demo site at https://siubuding.github.io/poems/kai/ .

Deploy to AWS S3 Bucket

https://docs.aws.amazon.com/AmazonS3/latest/userguide/WebsiteHosting.html

For example: http://fonlow.heroes.s3-website-us-east-1.amazonaws.com/

AWS Provide the following means to publish: 1. Web UI the S3 console 2. REST API. This could be used automatic deployment from client sides. 3. AWS SDKs 4. AWS CLI

As part of the AWS Free Tier, you can get started with Amazon S3 for free. Upon sign-up, new AWS customers receive 5GB of Amazon S3 storage in the S3 Standard storage class; 20,000 GET Requests; 2,000 PUT, COPY, POST, or LIST Requests; and 100 GB of Data Transfer Out each month. @ https://aws.amazon.com/s3/pricing/?p=ft&c=wa&z=2

And NO HTTPS access.

Good enough for Poetry Collection which requires loading basically once.

Multiple Poetry Collections in One Website

Each collection has its own index.html and conf and api/files/file, while sharing scripts and assets.

An ISP provides a customer with the such Website: http://users.isp.com/UserName

Github Pages provides a user with the following Website: https://UserName.github.io/ProjectName

To host multiple SPA apps, do the following. 1. Use FTP or GitHub gh-pages to copy each SPA app to a foder, like Heroes 1. Alter index.html’s base ref to /UserName/Heroes/ 1. Test http://users.isp.com/UserName/Heroes

Even if you have only 1 app, you may still want this way, because in your Web root, you may want other static HTML contents.

To host multiple Poetry collections, basically you may do what outlined above. Since these collections should be using the same codebase, it is better to make these collections share the same set of codes, while with separated. 1. In folder /UserName/Collections/, put folders “assets” and “scripts”. 1. Put each collection to UserName/Collections/Collection1 and so on. Each collection has its own files and folders: * index.html. Replace the references to scripts to something like <script src="../scripts/runtime.31b9d232e3f708d6.js". Everytime the app scripts is updated, changes need to be made accordingly to adapt the new version. * folder conf. Alter sitename and other settings accordingly * folder data * folder api/files/file 1. Test http://users.isp.com/UserName/Collections/Collection1.

Data Update

  1. Using the full app, export the published, and optionally export the 2nd edition of the published.
  2. Rename the JSON files to primary.json and secondary.json, and overwrite what in the gh-pages repository;
  3. If there are new image files associated, the copy things to api/files/file/.
  4. Commit and push.

Web App

During development, the frontend and the backend are often running on different hosts. Almost all features of the app could run well in such config, except the locally hosted pictures. The locally hosted pictures are using related patch in img src, and such constraint is for static readonly deployment.

Desktop App

Mobile App

The database could be either sqlite or Firebird embedded.

Static Readonly Mobile App

This is basically the static readonly self contained in an app container.