diff --git a/.github/workflows/1_dev.yml b/.github/workflows/1_dev.yml index 22282697..bd650878 100644 --- a/.github/workflows/1_dev.yml +++ b/.github/workflows/1_dev.yml @@ -63,9 +63,13 @@ jobs: arch: [386, amd64, arm-7, arm-6, arm64] include: - platform: darwin - arch: [386, amd64] + arch: 386 + - platform: darwin + arch: amd64 - platform: windows - arch: [386, amd64] + arch: 386 + - platform: windows + arch: amd64 steps: - uses: actions/checkout@v2 @@ -129,7 +133,7 @@ jobs: rm -rf statping echo "compressed=statping-linux-${{ matrix.arch }}.tar.gz" >> $GITHUB_ENV - - name: Compress Windows ${{matrix.arch}} Builds + - name: Compress Windows Builds if: matrix.platform == 'windows' run: | cd build @@ -139,8 +143,19 @@ jobs: rm -rf statping.exe echo "compressed=statping-windows-${{ matrix.arch }}.zip" >> $GITHUB_ENV - - name: Compress Darwin ${{matrix.arch}} Builds - if: matrix.platform == 'darwin' + - name: Compress Darwin 32bit Builds + if: matrix.platform == 'darwin' && matrix.arch == '386' + run: | + cd build + ls >> $GITHUB_ENV +# mv statping-darwin-10.6-${{ matrix.arch }} statping +# chmod +x statping +# tar -czvf statping-darwin-${{ matrix.arch }}.tar.gz * +# rm -rf statping +# echo "compressed=statping-darwin-${{ matrix.arch }}.tar.gz" >> $GITHUB_ENV + + - name: Compress Darwin 64bit Builds + if: matrix.platform == 'darwin' && matrix.arch == 'amd64' run: | cd build mv statping-darwin-10.12-${{ matrix.arch }} statping @@ -149,6 +164,22 @@ jobs: rm -rf statping echo "compressed=statping-darwin-${{ matrix.arch }}.tar.gz" >> $GITHUB_ENV +# - name: Compress Darwin arm64 Builds +# if: matrix.platform == 'darwin' && matrix.arch == 'arm64' +# run: | +# cd build +# mv statping-darwin-10.15-${{ matrix.arch }} statping +# chmod +x statping +# tar -czvf statping-darwin-${{ matrix.arch }}.tar.gz statping +# rm -rf statping +# echo "compressed=statping-darwin-${{ matrix.arch }}.tar.gz" >> $GITHUB_ENV + + - name: Upload Compiled Statping Binary + uses: actions/upload-artifact@v1 + with: + name: statping-${{ matrix.platform }}-${{ matrix.arch }} + path: ./build + test: needs: frontend runs-on: ubuntu-latest diff --git a/.github/workflows/2_unstable.yml b/.github/workflows/2_unstable.yml index c9a18933..a4150490 100644 --- a/.github/workflows/2_unstable.yml +++ b/.github/workflows/2_unstable.yml @@ -2,7 +2,7 @@ name: 2. Unstable Build, Test and Deploy on: push: branches: - - dev + - unstable paths-ignore: - '**.md' @@ -64,6 +64,8 @@ jobs: include: - platform: darwin arch: amd64 + - platform: windows + arch: 386 - platform: windows arch: amd64 @@ -455,14 +457,14 @@ jobs: restore-keys: | buildx-docker-master - - name: Docker Login - env: - DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }} - DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }} - run: echo "${DOCKER_PASSWORD}" | docker login --username "${DOCKER_USERNAME}" --password-stdin +# - name: Docker Login +# env: +# DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }} +# DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }} +# run: echo "${DOCKER_PASSWORD}" | docker login --username "${DOCKER_USERNAME}" --password-stdin# - - name: Docker Build :base - run: make buildx-base +# - name: Docker Build :base +# run: make buildx-base - name: Docker Login env: diff --git a/.github/workflows/3_stable.yml b/.github/workflows/3_stable.yml index 71fec2ad..84b57059 100644 --- a/.github/workflows/3_stable.yml +++ b/.github/workflows/3_stable.yml @@ -74,11 +74,13 @@ jobs: matrix: platform: [linux] arch: [386, amd64, arm-7, arm-6, arm64] -# include: -# - platform: darwin -# arch: amd64 -# - platform: windows -# arch: amd64 + include: + - platform: darwin + arch: amd64 + - platform: windows + arch: 386 + - platform: windows + arch: amd64 steps: - uses: actions/checkout@v2 @@ -108,17 +110,17 @@ jobs: echo "XGO_TAGS=netgo osusergo linux sqlite_omit_load_extension" >> $GITHUB_ENV shell: bash -# - name: Set Darwin Build Flags -# if: matrix.platform == 'darwin' -# run: echo "XGO_TAGS=netgo osusergo darwin sqlite_omit_load_extension" >> $GITHUB_ENV -# shell: bash + - name: Set Darwin Build Flags + if: matrix.platform == 'darwin' + run: echo "XGO_TAGS=netgo osusergo darwin sqlite_omit_load_extension" >> $GITHUB_ENV + shell: bash -# - name: Set Windows Build Flags -# if: matrix.platform == 'windows' -# run: | -# echo "BUILD_FLAGS=-extldflags -static" >> $GITHUB_ENV -# echo "XGO_TAGS=netgo osusergo sqlite_omit_load_extension" >> $GITHUB_ENV -# shell: bash + - name: Set Windows Build Flags + if: matrix.platform == 'windows' + run: | + echo "BUILD_FLAGS=-extldflags -static -buildmode=exe" >> $GITHUB_ENV + echo "XGO_TAGS=netgo osusergo sqlite_omit_load_extension" >> $GITHUB_ENV + shell: bash - name: Build ${{ matrix.platform }}/${{ matrix.arch }} uses: crazy-max/ghaction-xgo@v1 @@ -148,25 +150,25 @@ jobs: rm -rf statping echo "compressed=statping-linux-${{ matrix.arch }}.tar.gz" >> $GITHUB_ENV -# - name: Compress Windows Builds -# if: matrix.platform == 'windows' -# run: | -# cd build -# mv statping-windows-4.0-${{ matrix.arch }}.exe statping.exe -# chmod +x statping.exe -# zip statping-windows-${{ matrix.arch }}.zip statping.exe -# rm -rf statping.exe -# echo "compressed=statping-windows-${{ matrix.arch }}.zip" >> $GITHUB_ENV + - name: Compress Windows Builds + if: matrix.platform == 'windows' + run: | + cd build + mv statping-windows-4.0-${{ matrix.arch }}.exe statping.exe + chmod +x statping.exe + zip statping-windows-${{ matrix.arch }}.zip statping.exe + rm -rf statping.exe + echo "compressed=statping-windows-${{ matrix.arch }}.zip" >> $GITHUB_ENV -# - name: Compress Darwin Builds -# if: matrix.platform == 'darwin' -# run: | -# cd build -# mv statping-darwin-10.6-${{ matrix.arch }} statping -# chmod +x statping -# tar -czvf statping-darwin-${{ matrix.arch }}.tar.gz statping -# rm -rf statping -# echo "compressed=statping-darwin-${{ matrix.arch }}.tar.gz" >> $GITHUB_ENV + - name: Compress Darwin Builds + if: matrix.platform == 'darwin' + run: | + cd build + mv statping-darwin-10.12-${{ matrix.arch }} statping + chmod +x statping + tar -czvf statping-darwin-${{ matrix.arch }}.tar.gz statping + rm -rf statping + echo "compressed=statping-darwin-${{ matrix.arch }}.tar.gz" >> $GITHUB_ENV - name: Upload Compiled Statping Binary uses: actions/upload-artifact@v1 @@ -477,14 +479,14 @@ jobs: restore-keys: | buildx-docker - - name: Docker Login - env: - DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }} - DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }} - run: echo "${DOCKER_PASSWORD}" | docker login --username "${DOCKER_USERNAME}" --password-stdin - - - name: Docker Build :base - run: make buildx-base +# - name: Docker Login +# env: +# DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }} +# DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }} +# run: echo "${DOCKER_PASSWORD}" | docker login --username "${DOCKER_USERNAME}" --password-stdin +# +# - name: Docker Build :base +# run: make buildx-base - name: Docker Login env: diff --git a/CHANGELOG.md b/CHANGELOG.md index 6ebf8478..b80f70fe 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,15 @@ -# 0.90.78 (xx-xx-2021) +# 0.90.78 (09-15-2021) +- HTTP Webhooks accept multiple HTTP Headers +- Modified Telegram notifier to allow chat_ids +- New Notifier - Mattermost +- Updated German Language - Thanks Flofeld +- Czech Language - Thanks Fjuro +- Some minor branding Changes +- Moved some asset dependancies from assets.statping.com +- Fixed the (Ubuntu) Snap Store build script - Retrospectively updated the Changelog - [GITHUB] Fixed Windows/Mac autobuilds +- [GITHUB] Unstable container build - [GITHUB] Triggers SNAP builds # 0.90.77 (08-18-2021) diff --git a/Dockerfile b/Dockerfile index fd54c686..ca503f78 100644 --- a/Dockerfile +++ b/Dockerfile @@ -44,9 +44,9 @@ RUN chmod a+x statping && mv statping /go/bin/statping # /root/sassc/bin/sassc - sass binary # /statping - Vue frontend (from frontend) -ARG BUILDPLATFORM # Statping main Docker image that contains all required libraries FROM alpine:latest + RUN apk --no-cache add libgcc libstdc++ ca-certificates curl jq && update-ca-certificates COPY --from=backend /go/bin/statping /usr/local/bin/ diff --git a/Makefile b/Makefile index 036c1c9a..dc155dcc 100644 --- a/Makefile +++ b/Makefile @@ -272,16 +272,11 @@ download-key: wget -O statping.gpg $(SIGN_URL) gpg --import statping.gpg -# push the :dev docker tag using curl -dockerhub-dev: - docker build --build-arg VERSION=${VERSION} -t statping-ng/statping-ng:dev --no-cache -f Dockerfile . - docker push statping-ng/statping-ng:dev - dockerhub: - docker build --build-arg VERSION=${VERSION} -t statping-ng/statping-ng:latest --no-cache -f Dockerfile . - docker tag statping-ng/statping-ng statping-ng/statping-ng:v${VERSION} - docker push statping-ng/statping-ng:v${VERSION} - docker push statping-ng/statping-ng + docker build --build-arg VERSION=${VERSION} -t adamboutcher/statping-ng:latest --no-cache -f Dockerfile . + docker tag adamboutcher/statping-ng adamboutcher/statping-ng:v${VERSION} + docker push adamboutcher/statping-ng:v${VERSION} + docker push adamboutcher/statping-ng docker-build-dev: docker build --build-arg VERSION=${VERSION} -t statping-ng/statping-ng:latest --no-cache -f Dockerfile . diff --git a/README.md b/README.md index c8b7fe87..883f3323 100644 --- a/README.md +++ b/README.md @@ -1,112 +1,152 @@ -

- +

+ Statping-ng +

+

+ Statping-ng - Web and App Status Monitoring for Any Type of Project

-

- Statping-ng - Web and App Status Monitoring for Any Type of Project
- Website | View Wiki | API +

+ Website | + Wiki
- Docker | Linux | Mac | Windows + Linux | + Windows | + Mac | + Containers

-# Statping-ng - Status Page & Monitoring Server - -An easy to use Status Page for your websites and applications. Statping will automatically fetch the application and render a beautiful status page with tons of features for you to build an even better status page. This Status Page generator allows you to use MySQL, Postgres, or SQLite on multiple operating systems. - +

Statping-ng - Status Page & Monitoring Server

+

An easy to use Status Page for your websites and applications. Statping will automatically fetch the application and render a beautiful status page with tons of features for you to build an even better status page. This Status Page generator allows you to use MySQL, Postgres, or SQLite on multiple operating systems. +

Statping-ng aims to be an updated drop-in replacement of statping after development stopped on the original fork. - -![GitHub license](https://img.shields.io/github/license/statping-ng/statping-ng?color=green&style=for-the-badge) ![GitHub last commit](https://img.shields.io/github/last-commit/statping-ng/statping-ng?style=for-the-badge) ![GitHub Workflow Status](https://img.shields.io/github/workflow/status/statping-ng/statping-ng/2.%20Unstable%20Build,%20Test%20and%20Deploy?label=Dev%20Build&style=for-the-badge) ![GitHub Workflow Status](https://img.shields.io/github/workflow/status/statping-ng/statping-ng/3.%20Stable%20Build,%20Test%20and%20Deploy?label=Stable%20Build&style=for-the-badge) ![Docker Pulls](https://img.shields.io/docker/pulls/adamboutcher/statping-ng?style=for-the-badge) ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/adamboutcher/statping-ng/latest?style=for-the-badge) - -

- -

A Future-Proof Status Page

-Statping-ng strives to remain future-proof and remain intact if a failure is created. Your Statping service should not be running on the same instance you're trying to monitor. If your server crashes your Status Page should still remaining online to notify your users of downtime. - -
(dashboard login is `admin`, password `admin`) -


- -

No Requirements

-Statping-ng is built in Go Language so all you need is the precompile binary based on your operating system. You won't need to install anything extra once you have the Statping binary installed. You can even run Statping on a Raspberry Pi. -

-

-        -        -        -        -        - -

- - - -

Lightweight and Fast

-Statping-ng is a very lightweight application and is available for Linux, Mac, and Windows. The Docker image is only ~16Mb so you know that this application won't be filling up your hard drive space. -The Status binary for all other OS's is ~17Mb at most. -





- - -

Mobile App is Gorgeous

-The Statping app is available on the App Store and Google Play for free. The app will allow you to view services, receive notifications when a service is offline, update groups, users, services, messages, and more! Start your own Statping-ng server and then connect it to the app by scanning the QR code in settings. - -

- -

-

+

+ License +

+ Last Commit + Dev Build Status + Unstable Build Status + Stable Build Status +

+ Docker Pulls + Docker Image Size +

+ Go Version + Go Report +

-## Run on Any Server -Want to run it on your own Docker server? Awesome! Statping-ng has multiple docker-compose.yml files to work with. Statping-ng can automatically create a SSL Certification for your status page. -



+
+

About Statping-ng

- -

Custom SASS Styling

-Statping-ng will allow you to completely customize your Status Page using SASS styling with easy to use variables. The Docker image actually contains a prebuilt SASS binary so you won't even need to setup anything! -



+ +

A Future-Proof Status Page

+

+ Statping-ng strives to remain future-proof and remain intact if a failure is created. Your Statping-ng service should not be running on the same instance you're trying to monitor. If your server crashes your Status Page should still remaining online to notify your users of downtime. +

+

+ Try Statping-ng via Play with Docker - Login is admin, password admin. +

+


-## Slack, Email, Twilio and more -Statping-ng includes email notification via SMTP and Slack integration using [Incoming Webhook](https://api.slack.com/incoming-webhooks). Insert the webhook URL into the Settings page in Statping-ng and enable the Slack integration. Anytime a service fails, the channel that you specified on Slack will receive a message. -



-

User Created Notifiers

-View the [Plugin Wiki](https://github.com/statping-ng/statping-ng/wiki/Statping-Plugins) to see detailed information about Golang Plugins. Statping-ng isn't just another Status Page for your applications, it's a framework that allows you to create your own plugins to interact with every element of your status page. [Notifier's](https://github.com/statping-ng/statping-ng/wiki/Notifiers) can also be create with only 1 golang file. -



+

No Requirements - Run on Any Server

+

+Statping-ng is built in Go Language so all you need is the pre-compiled binary based on your operating system. You won't need to install anything extra once you have the Statping binary installed. Windows, Linux or Mac, We compile to all the popular systems, including Raspberry Pi! +

+

+Linux +Windows +Apple Mac +Containers +Android Play Store +Apple Apps Store +

+
+


- -



+ +

Lightweight and Fast

+

+Statping-ng is a very lightweight application and is available for Linux, Mac, and Windows. The Docker image is only ~20Mb so you know that this application won't be filling up your hard drive space. +The Status binary for all other OS's is ~17Mb at most. +

+



- + +

Want easy containers?

+

+No Worries, we provide docker containers for many different system architectures, with multiple docker-compose files to suit your needs, you can even bring your own SSL Certificate or automatically leverage Lets Encrypt to keep things secure. But it's can be as simple as a docker run! +

+


+ + + +

Custom SASS Styling

+Statping-ng will allow you to completely customize your Status Page using SASS styling with easy to use variables. The container image actually contains a pre-built SASS binary so you won't even need to setup anything! +



+ + + +

Compatible with the Statping App

+

+Statping-ng is 100% compatible with the statping app which is available on the Apple App Store and Google Play for free. The app will allow you to view services, receive notifications when a service is offline, update groups, users, services, messages, and more! Start your own Statping-ng server and then connect it to the app by scanning the QR code in settings.

+

+ + +

+

The mobile app is not maintained by statping-ng and includes in-app purchases to the developer of statping.

+


+ +

Notifications - Slack, Email, Twilio and more

+

Statping-ng includes email notification via SMTP and Slack integration using Incoming Webhook. Insert the webhook URL into the Settings page in Statping-ng and enable the Slack integration. Anytime a service fails, the channel that you specified on Slack will receive a message.

+

View the Plugin Wiki to see detailed information about Golang Plugins. Statping-ng isn't just another Status Page for your applications, it's a framework that allows you to create your own plugins to interact with every element of your status page. Notifier's can also be create with only 1 golang file.

+



+ + +

Easy to use Dashboard

-Having a straight forward dashboard makes Statping-ng that much better. Monitor your websites and applications with a basic HTTP GET request, or add a POST request with your own JSON to post to the endpoint. -



+

+Having a straight forward dashboard makes Statping-ng that much better. Quickly and Easy view statuses. Monitor your websites and applications with a basic HTTP GET request, or add a POST request with your own JSON to post to the endpoint.

+




+ + + + + + +

Quick Start

+

Here's a few quick start guides to get you going, fast.

+ +

Docker

+

Use the Statping Docker Image to create a status page in seconds. Checkout the Docker Wiki to view more details on how to get started using Docker. +

-## Run on Docker -Use the [Statping Docker Image](https://hub.docker.com/r/adamboutcher/statping-ng) to create a status page in seconds. Checkout the [Docker Wiki](https://github.com/statping-ng/statping-ng/wiki/Docker) to view more details on how to get started using Docker. ```bash docker run -it -p 8080:8080 adamboutcher/statping-ng ``` -There are multiple ways to startup a Statping-ng server. You want to make sure Statping-ng is on it's own instance that is not on the same server as the applications you wish to monitor. It doesn't look good when your Status Page goes down. -



-## Docker Compose -In this folder there is a standard docker-compose file that include nginx, postgres, and Statping-ng. +

Docker Compose

+

In the root (base) folder there is a standard docker-compose file that includes nginx, postgres, and Statping-ng.

+ ```bash docker-compose up -d ``` -



-## Docker Compose with Automatic SSL -You can automatically start a Statping-ng server with automatic SSL encryption using this docker-compose file. First point your domain's DNS to the Statping-ng server, and then run this docker-compose command with DOMAIN and EMAIL. Email is for letsencrypt services. +

Docker Compose with Automatic SSL

+

You can automatically start a Statping-ng server with automatic SSL encryption using this docker-compose file. First point your domain's DNS to the Statping-ng server, and then run this docker-compose command with DOMAIN and EMAIL. Email is for letsencrypt services.

+ ```bash LETSENCRYPT_HOST=mydomain.com \ LETSENCRYPT_EMAIL=info@mydomain.com \ docker-compose -f docker-compose-ssl.yml up -d ``` -Once your instance has started, it will take a moment to get your SSL certificate. Make sure you have a A or CNAME record on your domain that points to the IP/DNS of your server running Statping-ng. -



-## Prometheus Exporter -Statping-ng includes a [Prometheus Exporter](https://github.com/statping-ng/statping-ng/wiki/Prometheus-Exporter) so you can have even more monitoring power with your services. The Prometheus exporter can be seen on `/metrics`, simply create another exporter in your prometheus config. Use your Statping-ng API Secret for the Authorization Bearer header, the `/metrics` URL is dedicated for Prometheus and requires the correct API Secret has `Authorization` header. +

Once your instance has started, it will take a moment to get your SSL certificate. Make sure you have a A or CNAME record on your domain that points to the IP/DNS of your server running Statping-ng.

+ +

Prometheus Exporter

+

Statping-ng includes a Prometheus Exporter so you can have even more monitoring power with your services. The Prometheus exporter can be seen on /metrics, simply create another exporter in your prometheus config. Use your Statping-ng API Secret for the Authorization Bearer header, the /metrics URL is dedicated for Prometheus and requires the correct API Secret has Authorization header.

+ ```yaml scrape_configs: - job_name: 'statping' @@ -114,9 +154,9 @@ scrape_configs: static_configs: - targets: ['statping:8080'] ``` -



-## Contributing -Statping-ng accepts Push Requests to the `dev` branch! Feel free to add your own features and notifiers. You probably want to checkout the [Notifier Wiki](https://github.com/statping-ng/statping-ng/wiki/Notifiers) to get a better understanding on how to create your own notification methods for failing/successful services. Testing on Statping-ng will test each function on MySQL, Postgres, and SQLite. I recommend running MySQL and Postgres Docker containers for testing. You can find multiple docker-compose files in the dev directory. - -[![Go Report Card](https://goreportcard.com/badge/github.com/statping-ng/statping-ng)](https://goreportcard.com/report/github.com/statping-ng/statping-ng) +

Contributing

+

Statping-ng accepts Push Requests to the dev branch!

+

Feel free to add your own features and notifiers.You probably want to checkout the Notifier Wiki to get a better understanding on how to create your own notification methods for failing/successful services.

+

Testing on Statping-ng will test each function on MySQL, Postgres, and SQLite. I recommend running MySQL and Postgres Docker containers for testing.

+

You can find multiple docker-compose files in the dev directory.

diff --git a/dev/docker-compose.lite.yml b/dev/docker-compose.lite.yml index 78f7dd2d..66b9c85e 100644 --- a/dev/docker-compose.lite.yml +++ b/dev/docker-compose.lite.yml @@ -4,7 +4,7 @@ services: statping_dev: container_name: statping_dev - image: statping/statping:dev + image: statping-ng/statping-ng:dev restart: on-failure volumes: - ./cmd:/go/src/github.com/statping-ng/statping-ng/cmd/ diff --git a/dev/postman.json b/dev/postman.json index 712312f4..3e2f60ff 100644 --- a/dev/postman.json +++ b/dev/postman.json @@ -4205,7 +4205,7 @@ "", "pm.test(\"View All Notifiers\", function () {", " var jsonData = pm.response.json();", - " pm.expect(jsonData.length).to.eql(13);", + " pm.expect(jsonData.length).to.eql(14);", "});" ], "type": "text/javascript" @@ -6242,4 +6242,4 @@ } ], "protocolProfileBehavior": {} -} \ No newline at end of file +} diff --git a/docker-compose.yml b/docker-compose.yml index 38533e5a..395b773e 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -3,7 +3,7 @@ version: '2.3' services: statping: container_name: statping - image: aboutcher/statping-ng:dev + image: adamboutcher/statping-ng:latest restart: always volumes: - statping_data:/app diff --git a/frontend/public/base.gohtml b/frontend/public/base.gohtml index 696d733f..3cae161e 100644 --- a/frontend/public/base.gohtml +++ b/frontend/public/base.gohtml @@ -25,7 +25,7 @@ {{if USE_CDN}} - + {{else}} <% _.each(htmlWebpackPlugin.tags.headTags, function(headTag) { %> <%= headTag %> <% }) %> @@ -39,10 +39,10 @@
{{if USE_CDN}} - - - - + + + + {{else}} <% _.each(htmlWebpackPlugin.tags.bodyTags, function(bodyTag) { %> <%= bodyTag %> <% }) %> diff --git a/frontend/src/components/Dashboard/TopNav.vue b/frontend/src/components/Dashboard/TopNav.vue index 8136fff8..c8692de6 100644 --- a/frontend/src/components/Dashboard/TopNav.vue +++ b/frontend/src/components/Dashboard/TopNav.vue @@ -1,6 +1,6 @@