1
0
mirror of https://github.com/jhillyerd/inbucket.git synced 2025-12-18 10:07:02 +00:00

Compare commits

...

11 Commits

Author SHA1 Message Date
James Hillyerd
a10a6244c9 Merge pull request #279 from inbucket/v302rel
Release 3.0.2
2022-07-04 12:02:17 -07:00
James Hillyerd
9185423022 Update CHANGELOG 2022-07-04 11:03:48 -07:00
James Hillyerd
9aaca449f8 Fix non-root basepaths, closes #273 2022-05-22 21:47:52 -07:00
James Hillyerd
f39395bd7f Fix error in swaks tests server default env var 2022-05-22 21:47:52 -07:00
James Hillyerd
2c68128d5d swaks-tests: allow server address override 2022-05-08 13:13:25 -07:00
James Hillyerd
06d4120682 Migrate to Yarn & Parcel (#260)
* Switch from npm to yarn
* Add minimum viable parcel dev server config
* Remove webpack configs
* Update docker build, build w/ yarn on node 16.x
2022-04-23 13:35:54 -07:00
James Hillyerd
58bcd4f557 Docker frontend build runs as amd64 (#270) 2022-04-23 10:33:46 -07:00
kaustubh105
e91e8d5aee Add support for ARMv7 and ARM64 docker images (#267)
* Build armv7 and arm64 docker containers

* Add QEMU step to build for multi arch

* Pin qemu action version
2022-02-25 08:56:18 -08:00
James Hillyerd
5322462899 Update changelog for 3.0.1-rc2
Signed-off-by: James Hillyerd <james@hillyerd.com>
2022-01-23 17:42:32 -08:00
Daniel Simkus
5def9ed183 Add arm and arm64 builds (#256)
* Add arm and arm64 builds

Signed-off-by: danielsimkus <daniel.simkus@carandclassic.com>

* Added arm and arm64 to client, and switched to goarm 7

Signed-off-by: danielsimkus <daniel.simkus@carandclassic.com>
2022-01-22 09:50:37 -08:00
James Hillyerd
357589d90e Rename master branch to main (#255)
* Update contributing guide, remove git-flow references

Signed-off-by: James Hillyerd <james@hillyerd.com>

* Update changelog for main branch rename

Signed-off-by: James Hillyerd <james@hillyerd.com>

* Update github actions for branch rename

* Update README build badges

Signed-off-by: James Hillyerd <james@hillyerd.com>

* Update README for new branch names

Signed-off-by: James Hillyerd <james@hillyerd.com>

* Note branch rename in change log

Signed-off-by: James Hillyerd <james@hillyerd.com>
2022-01-17 17:16:44 -08:00
22 changed files with 2381 additions and 8041 deletions

View File

@@ -1,7 +1,7 @@
name: Docker Image name: Docker Image
on: on:
push: push:
branches: [ "develop" ] branches: [ "main" ]
tags: [ "v*" ] tags: [ "v*" ]
pull_request: pull_request:
jobs: jobs:
@@ -22,9 +22,13 @@ jobs:
type=ref,event=pr type=ref,event=pr
type=semver,pattern={{version}} type=semver,pattern={{version}}
type=sha type=sha
type=edge,branch=develop type=edge,branch=main
flavor: | flavor: |
latest=auto latest=auto
- name: Set up QEMU
uses: docker/setup-qemu-action@v1
with:
platforms: all
- name: Set up Docker Buildx - name: Set up Docker Buildx
uses: docker/setup-buildx-action@v1 uses: docker/setup-buildx-action@v1
- name: Login to DockerHub - name: Login to DockerHub
@@ -44,6 +48,7 @@ jobs:
uses: docker/build-push-action@v2 uses: docker/build-push-action@v2
with: with:
context: . context: .
platforms: linux/amd64,linux/arm64, linux/arm/v7
push: ${{ github.event_name != 'pull_request' }} push: ${{ github.event_name != 'pull_request' }}
tags: ${{ steps.meta.outputs.tags }} tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }} labels: ${{ steps.meta.outputs.labels }}

View File

@@ -1,7 +1,7 @@
name: Build and Release name: Build and Release
on: on:
push: push:
branches: [ "master", "develop" ] branches: [ "main" ]
tags: [ "v*" ] tags: [ "v*" ]
pull_request: pull_request:
jobs: jobs:
@@ -16,17 +16,15 @@ jobs:
with: with:
go-version: 1.17 go-version: 1.17
- name: Setup Node.js - name: Setup Node.js
uses: actions/setup-node@v1 uses: actions/setup-node@v3
with: with:
node-version: '14.x' node-version: '16.x'
- name: Setup Elm cache: 'yarn'
uses: jorelali/setup-elm@v2 cache-dependency-path: ui/yarn.lock
with:
elm-version: 0.19.1
- name: Build frontend - name: Build frontend
run: | run: |
npm ci yarn install --frozen-lockfile --non-interactive
npm run build yarn run build
working-directory: ./ui working-directory: ./ui
- name: Test build release - name: Test build release
uses: goreleaser/goreleaser-action@v2 uses: goreleaser/goreleaser-action@v2

1
.gitignore vendored
View File

@@ -52,3 +52,4 @@ repl-temp-*
/ui/dist/ /ui/dist/
# Dependency directories # Dependency directories
/ui/node_modules /ui/node_modules
/ui/.parcel-cache

View File

@@ -22,8 +22,10 @@ builds:
- windows - windows
goarch: goarch:
- amd64 - amd64
- arm
- arm64
goarm: goarm:
- "6" - "7"
main: ./cmd/inbucket main: ./cmd/inbucket
ldflags: -s -w -X main.version={{.Version}} -X main.commit={{.Commit}} -X main.date={{.Date}} ldflags: -s -w -X main.version={{.Version}} -X main.commit={{.Commit}} -X main.date={{.Date}}
- id: inbucket-client - id: inbucket-client
@@ -37,8 +39,10 @@ builds:
- windows - windows
goarch: goarch:
- amd64 - amd64
- arm
- arm64
goarm: goarm:
- "6" - "7"
main: ./cmd/client main: ./cmd/client
ldflags: -s -w -X main.version={{.Version}} -X main.commit={{.Commit}} -X main.date={{.Date}} ldflags: -s -w -X main.version={{.Version}} -X main.commit={{.Commit}} -X main.date={{.Date}}

View File

@@ -6,6 +6,25 @@ This project adheres to [Semantic Versioning](http://semver.org/).
## [Unreleased] ## [Unreleased]
## [v3.0.2] - 2022-07-04
Note: We had to abandon the 3.0.1 release, see the blog post [What happened to
3.0?](https://www.inbucket.org/news/2022/05/whathappenedtothree.html) for
details.
### Changed
- arm Docker builds now rely on amd64 frontend build stage
- Frontend build migrated from npm+webpack to yarn+parcel, node 16
## [v3.0.1-rc2] - 2022-01-23
### Added
- Builds for arm7 and arm64 platforms
### Changed
- Abandoned git-flow process, the `master` branch renamed to `main`
## [v3.0.1-rc1] - 2022-01-17 ## [v3.0.1-rc1] - 2022-01-17
@@ -283,9 +302,12 @@ No change from beta1.
- Add Link button to messages, allows for directing another person to a - Add Link button to messages, allows for directing another person to a
specific message. specific message.
[Unreleased]: https://github.com/inbucket/inbucket/compare/master...develop
[Unreleased]: https://github.com/inbucket/inbucket/compare/v3.0.2...main
[v3.0.2]: https://github.com/inbucket/inbucket/compare/v3.0.1-rc2...v3.0.2
[v3.0.1-rc2]: https://github.com/inbucket/inbucket/compare/v3.0.1-rc1...v3.0.1-rc2
[v3.0.1-rc1]: https://github.com/inbucket/inbucket/compare/v3.0.0...v3.0.1-rc1 [v3.0.1-rc1]: https://github.com/inbucket/inbucket/compare/v3.0.0...v3.0.1-rc1
[v3.0.0]: https://github.com/inbucket/inbucket/compare/v3.0.0-rc4...v3.0.0 [v3.0.0]: https://github.com/inbucket/inbucket/compare/v3.0.0-rc4...v3.0.0
[v3.0.0-rc4]: https://github.com/inbucket/inbucket/compare/v3.0.0-rc2...v3.0.0-rc4 [v3.0.0-rc4]: https://github.com/inbucket/inbucket/compare/v3.0.0-rc2...v3.0.0-rc4
[v3.0.0-rc2]: https://github.com/inbucket/inbucket/compare/v3.0.0-rc1...v3.0.0-rc2 [v3.0.0-rc2]: https://github.com/inbucket/inbucket/compare/v3.0.0-rc1...v3.0.0-rc2
[v3.0.0-rc1]: https://github.com/inbucket/inbucket/compare/v3.0.0-beta3...v3.0.0-rc1 [v3.0.0-rc1]: https://github.com/inbucket/inbucket/compare/v3.0.0-beta3...v3.0.0-rc1
@@ -308,16 +330,17 @@ No change from beta1.
## Release Checklist ## Release Checklist
1. Create release branch: `git flow release start 1.x.0` 1. Create a release branch
2. Update CHANGELOG.md: 2. Update CHANGELOG.md:
- Ensure *Unreleased* section is up to date - Ensure *Unreleased* section is up to date
- Rename *Unreleased* section to release name and date. - Rename *Unreleased* section to release name and date
- Add new GitHub `/compare` link - Add new GitHub `/compare` link
- Update previous tag version for *Unreleased*
3. Run tests 3. Run tests
4. Update goreleaser, and then test cross-compile: `goreleaser --snapshot` 4. Update goreleaser, and then test cross-compile: `goreleaser --snapshot`
5. Commit changes and merge release: `git flow release finish` 5. Commit changes and merge release into main, tag `vX.Y.Z`
6. Push tags and wait for https://travis-ci.org/inbucket/inbucket build to 6. Push tags and wait for
complete [GitHub actions](https://github.com/inbucket/inbucket/actions) to complete
7. Update `binary_versions` option in `inbucket-site/_config.yml` 7. Update `binary_versions` option in `inbucket-site/_config.yml`
See http://keepachangelog.com/ for additional instructions on how to update this file. See http://keepachangelog.com/ for additional instructions on how to update this file.

View File

@@ -1,11 +1,8 @@
How to Contribute # How to Contribute
=================
Inbucket encourages third-party patches. It's valuable to know how other Inbucket encourages third-party patches. It's valuable to know how other
developers are using the product. developers are using the product.
**tl;dr:** File pull requests against the `develop` branch, not `master`!
## Getting Started ## Getting Started
@@ -17,28 +14,18 @@ to provide validation and/or guidance on your suggested approach.
## Making Changes ## Making Changes
Inbucket uses [git-flow] with default options. If you have git-flow installed, Inbucket follows the regular GitHub pattern. Create a topic branch from where
you can run `git flow feature start <topic branch name>`. you want to base your work:
Without git-flow, create a topic branch from where you want to base your work:
- This is usually the `develop` branch, example command:
`git checkout origin/develop -b <topic branch name>`
- Only target the `master` branch if the issue is already resolved in
`develop`.
Once you are on your topic branch: Once you are on your topic branch:
1. Make commits of logical units. 1. Make commits of logical units.
2. Add unit tests to exercise your changes. 2. Add unit tests to exercise your changes.
3. Run the updated code through `go fmt` and `go vet`. 3. Run `make` to test, vet and confirm your code is formatted correctly.
4. Ensure the code builds and tests with the following commands: If you do not have Make installed, please perform these steps manually,
- `go clean ./...` otherwise your PR will not pass our checks.
- `go build ./...`
- `go test ./...`
## Thanks ## Thanks
Thank you for contributing to Inbucket! Thank you for contributing to Inbucket!
[git-flow]: https://github.com/nvie/gitflow

View File

@@ -1,35 +1,33 @@
# Docker build file for Inbucket: https://www.inbucket.org/ # Docker build file for Inbucket: https://www.inbucket.org/
# Install build-time dependencies ### Build frontend
FROM golang:1.17-alpine3.14 as builder # Due to no official elm compiler for arm; build frontend with amd64.
RUN apk add --no-cache --virtual .build-deps g++ git make npm python3 FROM --platform=linux/amd64 node:16 as frontend
WORKDIR /build
COPY . .
WORKDIR /build/ui
RUN rm -rf .parcel-cache dist elm-stuff node_modules
RUN yarn install --frozen-lockfile --non-interactive
RUN yarn run build
### Build backend
FROM golang:1.17-alpine3.14 as backend
RUN apk add --no-cache --virtual .build-deps g++ git make
WORKDIR /build WORKDIR /build
COPY . . COPY . .
ENV CGO_ENABLED 0 ENV CGO_ENABLED 0
RUN make clean deps RUN make clean deps
WORKDIR /build/ui
RUN rm -rf dist elm-stuff node_modules
RUN npm ci
ADD https://github.com/elm/compiler/releases/download/0.19.1/binary-for-linux-64-bit.gz elm.gz
RUN gunzip elm.gz && chmod 755 elm && mv elm /usr/bin/
# Build server
WORKDIR /build
RUN go build -o inbucket \ RUN go build -o inbucket \
-ldflags "-X 'main.version=$(git describe --tags --always)' -X 'main.date=$(date -Iseconds)'" \ -ldflags "-X 'main.version=$(git describe --tags --always)' -X 'main.date=$(date -Iseconds)'" \
-v ./cmd/inbucket -v ./cmd/inbucket
# Build frontend ### Run in minimal image
WORKDIR /build/ui
RUN npm run build
# Run in minimal image
FROM alpine:3.14 FROM alpine:3.14
RUN apk --no-cache add tzdata RUN apk --no-cache add tzdata
WORKDIR /opt/inbucket WORKDIR /opt/inbucket
RUN mkdir bin defaults ui RUN mkdir bin defaults ui
COPY --from=builder /build/inbucket bin COPY --from=backend /build/inbucket bin
COPY --from=builder /build/ui/dist ui COPY --from=frontend /build/ui/dist ui
COPY etc/docker/defaults/greeting.html defaults COPY etc/docker/defaults/greeting.html defaults
COPY etc/docker/defaults/start-inbucket.sh / COPY etc/docker/defaults/start-inbucket.sh /

View File

@@ -1,7 +1,7 @@
Inbucket ![Build Status](https://github.com/inbucket/inbucket/actions/workflows/build-and-test.yml/badge.svg)
============================================================================= ![Docker Image](https://github.com/inbucket/inbucket/actions/workflows/docker-build.yml/badge.svg)
[![Build Status](https://travis-ci.org/inbucket/inbucket.png?branch=master)][Build Status]
[![Docker Image](https://github.com/inbucket/inbucket/workflows/Docker%20Image/badge.svg)][Docker Image] # Inbucket
Inbucket is an email testing service; it will accept messages for any email Inbucket is an email testing service; it will accept messages for any email
address and make them available via web, REST and POP3 interfaces. Once address and make them available via web, REST and POP3 interfaces. Once
@@ -26,9 +26,9 @@ to contribute code to the project check out [CONTRIBUTING.md].
## Docker ## Docker
Inbucket has automated [Docker Image] builds via Docker Hub. The `stable` tag Inbucket has automated [Docker Image] builds via Docker Hub. The `latest` tag
tracks our `master` branch (releases), `latest` tracks our unstable tracks our tagged releases, and `edge` tracks our potentially unstable
`development` branch. `main` branch.
## Building from Source ## Building from Source
@@ -38,8 +38,8 @@ You will need functioning [Go] and [Node.js] installations for this to work.
```sh ```sh
git clone https://github.com/inbucket/inbucket.git git clone https://github.com/inbucket/inbucket.git
cd inbucket/ui cd inbucket/ui
npm ci yarn install
npm run build yarn build
cd .. cd ..
go build ./cmd/inbucket go build ./cmd/inbucket
``` ```
@@ -72,10 +72,10 @@ Inbucket is open source software released under the MIT License. The latest
version can be found at https://github.com/inbucket/inbucket version can be found at https://github.com/inbucket/inbucket
[Build Status]: https://travis-ci.org/inbucket/inbucket [Build Status]: https://travis-ci.org/inbucket/inbucket
[Change Log]: https://github.com/inbucket/inbucket/blob/master/CHANGELOG.md [Change Log]: https://github.com/inbucket/inbucket/blob/main/CHANGELOG.md
[config.md]: https://github.com/inbucket/inbucket/blob/master/doc/config.md [config.md]: https://github.com/inbucket/inbucket/blob/main/doc/config.md
[Configurator]: https://www.inbucket.org/configurator/ [Configurator]: https://www.inbucket.org/configurator/
[CONTRIBUTING.md]: https://github.com/inbucket/inbucket/blob/develop/CONTRIBUTING.md [CONTRIBUTING.md]: https://github.com/inbucket/inbucket/blob/main/CONTRIBUTING.md
[Development Quickstart]: https://github.com/inbucket/inbucket/wiki/Development-Quickstart [Development Quickstart]: https://github.com/inbucket/inbucket/wiki/Development-Quickstart
[Docker Image]: https://www.inbucket.org/binaries/docker.html [Docker Image]: https://www.inbucket.org/binaries/docker.html
[Elm]: https://elm-lang.org/ [Elm]: https://elm-lang.org/

View File

@@ -24,7 +24,7 @@ case "$1" in
;; ;;
esac esac
export SWAKS_OPT_server="127.0.0.1:2500" export SWAKS_OPT_server="${SWAKS_OPT_server:-127.0.0.1:2500}"
export SWAKS_OPT_to="$to@inbucket.local" export SWAKS_OPT_to="$to@inbucket.local"
# Basic test # Basic test

View File

@@ -3,6 +3,7 @@ stdenv.mkDerivation rec {
name = "env"; name = "env";
env = buildEnv { name = name; paths = buildInputs; }; env = buildEnv { name = name; paths = buildInputs; };
buildInputs = [ buildInputs = [
act
dpkg dpkg
elmPackages.elm elmPackages.elm
elmPackages.elm-analyse elmPackages.elm-analyse
@@ -12,7 +13,8 @@ stdenv.mkDerivation rec {
elmPackages.elm-test elmPackages.elm-test
go go
golint golint
nodejs-14_x nodejs-16_x
nodePackages.yarn
rpm rpm
swaks swaks
]; ];

4
ui/.parcelrc Normal file
View File

@@ -0,0 +1,4 @@
{
"extends": "@parcel/config-default",
"namers": [ "parcel-namer-rewrite" ]
}

12
ui/.proxyrc.json Normal file
View File

@@ -0,0 +1,12 @@
{
"/api": {
"target": "http://localhost:9000",
"ws": true
},
"/debug": {
"target": "http://localhost:9000"
},
"/serve": {
"target": "http://localhost:9000"
}
}

View File

@@ -11,9 +11,8 @@ One time setup (assuming [Node.js] is already installed):
``` ```
cd $INBUCKET/ui cd $INBUCKET/ui
npm i elm -g yarn install
npm i yarn build
npm run build
``` ```
This will the create `node_modules`, `elm-stuff`, and `dist` directories. This will the create `node_modules`, `elm-stuff`, and `dist` directories.
@@ -30,15 +29,16 @@ Inbucket will start, with HTTP listening on port 9000. You may verify the web
UI is functional if this is your first time building Inbucket, but your dev/test UI is functional if this is your first time building Inbucket, but your dev/test
cycle should favor the development server below. cycle should favor the development server below.
### Terminal 2: webpack development server ### Terminal 2: parcel development server
``` ```
cd $INBUCKET/ui cd $INBUCKET/ui
npm run dev yarn start
``` ```
npm will start a development HTTP server listening on port 3000. You should use yarn will start a development HTTP server listening on port 1234. You should
this server for UI development, as it features hot reload and the Elm debugger. use this server for UI development, as it features hot reload and the Elm
debugger.
[Elm]: https://elm-lang.org [Elm]: https://elm-lang.org
[Node.js]: https://nodejs.org [Node.js]: https://nodejs.org

7849
ui/package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -4,30 +4,29 @@
"license": "MIT", "license": "MIT",
"private": true, "private": true,
"scripts": { "scripts": {
"clean": "rm -rf dist elm-stuff", "build": "parcel build --public-url ./",
"build": "webpack --mode production", "start": "parcel --hmr-port 1235 src/index-dev.html",
"watch": "webpack --mode development --watch", "clean": "rm -rf .parcel-cache dist elm-stuff"
"dev": "webpack-dev-server --mode development --port 3000 --hot --watch",
"errors": "webpack --mode development --display-error-details"
}, },
"dependencies": { "source": "src/index.html",
"opensans-npm-webfont": "^1.0.0" "parcel-namer-rewrite": {
"rules": {
"(.*)\\.(css|js|json|eot|png|svg|ttf|webmanifest|woff|woff2)": "static/$1{.hash}.$2"
}
}, },
"browserslist": "defaults",
"dependencies": {},
"devDependencies": { "devDependencies": {
"@babel/core": "^7.14.8",
"@babel/preset-env": "^7.14.8",
"@fortawesome/fontawesome-free": "^5.15.3", "@fortawesome/fontawesome-free": "^5.15.3",
"@parcel/packager-raw-url": "2.4.1",
"@parcel/transformer-elm": "^2.2.1",
"@parcel/transformer-webmanifest": "2.4.1",
"@webcomponents/webcomponentsjs": "^2.5.0", "@webcomponents/webcomponentsjs": "^2.5.0",
"babel-loader": "^8.2.2", "opensans-npm-webfont": "^1.0.0",
"css-loader": "^4.3.0", "parcel": "^2.4.1",
"elm-hot-webpack-loader": "^1.1.8", "parcel-namer-rewrite": "^2.0.0-rc.2"
"elm-webpack-loader": "^7.0.1", },
"file-loader": "^6.2.0", "optionalDependencies": {
"html-webpack-plugin": "^4.5.2", "elm": "^0.19.1-5"
"node-elm-compiler": "^5.0.6",
"style-loader": "^1.3.0",
"webpack": "^4.46.0",
"webpack-cli": "^3.3.12",
"webpack-dev-server": "^3.11.2"
} }
} }

View File

Before

Width:  |  Height:  |  Size: 3.0 KiB

After

Width:  |  Height:  |  Size: 3.0 KiB

View File

@@ -1,15 +1,20 @@
<!DOCTYPE html> <!DOCTYPE html>
<html lang="en"> <html lang="en">
<head> <head>
<!-- This index file will be served by the webpack development server. --> <!-- This index file will be served by the development server. -->
<base href="/"> <base href="/">
<meta charset="utf-8"> <meta charset="utf-8">
<meta http-equiv="x-ua-compatible" content="ie=edge"> <meta http-equiv="x-ua-compatible" content="ie=edge">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="theme-color" content="#000000"> <meta name="theme-color" content="#000000">
<meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate" /> <meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate">
<meta http-equiv="Pragma" content="no-cache" /> <meta http-equiv="Pragma" content="no-cache">
<meta http-equiv="Expires" content="0" /> <meta http-equiv="Expires" content="0">
<link rel="stylesheet" href="./main.css">
<link rel="stylesheet" href="./navbar.css">
<link rel="stylesheet" href="./mailbox.css">
<link rel="icon" type="image/png" href="./favicon.png">
<link rel="manifest" href="./manifest.json">
<title>Inbucket</title> <title>Inbucket</title>
</head> </head>
<body> <body>
@@ -17,5 +22,6 @@
You need to enable JavaScript to run this app. You need to enable JavaScript to run this app.
</noscript> </noscript>
<div id="root"></div> <div id="root"></div>
<script type="module" src="index.js"></script>
</body> </body>
</html> </html>

View File

@@ -6,9 +6,14 @@
<meta http-equiv="x-ua-compatible" content="ie=edge"> <meta http-equiv="x-ua-compatible" content="ie=edge">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="theme-color" content="#000000"> <meta name="theme-color" content="#000000">
<meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate" /> <meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate">
<meta http-equiv="Pragma" content="no-cache" /> <meta http-equiv="Pragma" content="no-cache">
<meta http-equiv="Expires" content="0" /> <meta http-equiv="Expires" content="0">
<link rel="stylesheet" href="./main.css">
<link rel="stylesheet" href="./navbar.css">
<link rel="stylesheet" href="./mailbox.css">
<link rel="icon" type="image/png" href="./favicon.png">
<link rel="manifest" href="./manifest.json">
<title>Inbucket</title> <title>Inbucket</title>
</head> </head>
<body> <body>
@@ -16,5 +21,6 @@
You need to enable JavaScript to run this app. You need to enable JavaScript to run this app.
</noscript> </noscript>
<div id="root"></div> <div id="root"></div>
<script type="module" src="index.js"></script>
</body> </body>
</html> </html>

View File

@@ -1,6 +1,3 @@
import './main.css'
import './mailbox.css'
import './navbar.css'
import '@fortawesome/fontawesome-free/css/all.css' import '@fortawesome/fontawesome-free/css/all.css'
import '@webcomponents/webcomponentsjs/webcomponents-bundle' import '@webcomponents/webcomponentsjs/webcomponents-bundle'
import 'opensans-npm-webfont' import 'opensans-npm-webfont'

View File

@@ -1,84 +0,0 @@
const HtmlWebpackPlugin = require('html-webpack-plugin')
const webpack = require('webpack')
module.exports = (env, argv) => {
const production = argv.mode === 'production'
const config = {
output: {
filename: 'static/[name].[hash:8].js',
publicPath: '',
},
module: {
rules: [
{
test: /\.js$/,
exclude: [/elm-stuff/, /node_modules/],
loader: 'babel-loader',
query: {
presets: [
'@babel/preset-env',
],
},
},
{
test: /\.elm$/,
exclude: [/elm-stuff/, /node_modules/],
use: [
{ loader: 'elm-hot-webpack-loader' },
{
loader: 'elm-webpack-loader',
options: {
debug: !production,
optimize: production,
},
},
],
},
{
test: /\.css$/,
loader: ['style-loader', 'css-loader'],
},
{
test: /\.(eot|svg|ttf|woff|woff2)$/,
loader: 'file-loader',
options: {
name: 'static/[name].[hash:8].[ext]',
},
},
]
},
plugins: [
new HtmlWebpackPlugin({
template: 'public/index.html',
favicon: 'public/favicon.png',
}),
new HtmlWebpackPlugin({
filename: 'index-dev.html',
template: 'public/index-dev.html',
favicon: 'public/favicon.png',
}),
],
devServer: {
historyApiFallback: {
index: '/index-dev.html',
},
index: 'index-dev.html',
inline: true,
overlay: true,
open: true,
proxy: [{
context: ['/api', '/debug', '/serve'],
target: 'http://localhost:9000',
ws: true,
}],
stats: { colors: true },
watchOptions: {
ignored: /node_modules/,
},
},
}
if (argv.hot) {
config.plugins.push(new webpack.HotModuleReplacementPlugin())
}
return config
}

2231
ui/yarn.lock Normal file

File diff suppressed because it is too large Load Diff