A static navigation website written in svelte3.
Note: UI Design are referenced from other sites
-
Clone the project to local
git clone https://github.com/picopock/navigation_website.git
-
Install dependencies
pnpm install
Once you've created a project and installed dependencies with pnpm
, start a development server:
pnpm dev --host
# or start the server and open the app in a new browser tab
pnpm dev -- --open
Customize your navigation page
-
Customize by modify the build product
-
Customize by modify the source code
-
Customize website information
The website information is saved in
src/lib/constants/siteInfo.ts
fileName Desc siteName
Site name siteCopyright
Site copyright information siteICPFiling
Site ICP filing information siteICPFilingURL
The link of ICP filing query website sitePoliceFiling
Public security filing information of website sitePoliceFilingURL
The link of Public security filing query website -
Customize navigation information
The navigation information is saved in
src/lib/constants/nav.ts
file-
Site List Definition
Site Item Field Type Desc name
string Site name value
string Value of site. It will be use as key field to define site link -
Default Site Definition
-
defaultSiteIndex
The default site index of site list. Start index is
0
, not1
. Default value is0
.
-
-
-
Nav List Definition
Nav Item Field Type Desc name
string Navigation item name link
object The link of all site defined here source
string Navigation item logo. support http(s)、image or svg format Note: if the
source
field is nothttp(s)
format, such asjellyfin.svg
, you will need to putjellyfin.svg
resource intostatic/navIcons/
folder.Note: if the link of current site is not defined under the
link
field, the nav item will not be show. -
example
export const siteList: ISite[] = [ { name: '上海', value: 'shangHai' }, { name: '北京', value: 'beiJing' }, { name: '广州', value: 'guangZhou' }, { name: '深圳', value: 'shenZhen' }, ]; export const navList: INavItem[] = [ { name: 'RouterOS', link: { shangHai: 'http://10.0.0.1', beiJing: 'http://10.1.0.1' }, source: 'routerOS.png' }, { name: 'OpenWRT', link: { shangHai: 'http://10.0.0.2', beiJing: 'http://10.1.0.2' }, source: 'openWRT.png' }, { name: 'Esxi', link: { shangHai: 'http://10.0.0.3', beiJing: 'http://10.1.0.3', guangZhou: 'http://10.2.0.3', }, source: 'esxi.png' }, { name: 'K2P', link: { shangHai: 'http://10.0.0.4', beiJing: 'http://10.1.0.4', shenZhen: 'http://10.2.0.4', }, source: 'phicomm.png' } ];
-
-
-
Customize Avatar
-
put resource into
static/
folder. -
rename resource with
avatar.png
.
-
-
Build locally
To create a production version of your app:
pnpm build
You can preview the production build with
pnpm preview
.
-
Deploy with static resource server
when you run command
pnpm build
, the compile result will be put intobuild
folder. Copy all files in thebuild
folder to the static resource server. -
Deploy with docker
-
The docker image uses nginx as the static resource server. The nginx configuration file is in
config/nginx/
folder.By default, this nginx is in https mode, and the http(80) request will be redirect to https. You need put the certificate file into
config/nginx/cert/
folder and updatenginx.conf
as follow:ssl_certificate /etc/nginx/cert/<cert name>.pem; ssl_certificate_key /etc/nginx/cert/<cert name>.key;
Note:
<cert name>
will be replace with your certificate name. -
Build docker image based on
Dockerfile
. -
Pull docker iamge to your machine
-
Run container whit docker command
// eg. // Need to be update according to individual circumstances docker run -d --restart=always --name navigation_website_<version> -p 8080:80 -p 8443:443 xxxx.com/xxxx/navigation_website:<version>
-