Skip to content

Commit a3d01f7

Browse files
committed
First public commit.
0 parents  commit a3d01f7

File tree

173 files changed

+19519
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

173 files changed

+19519
-0
lines changed

.ddev/config.yaml

+13
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
name: feedcanary
2+
type: php
3+
docroot: public
4+
php_version: "8.3"
5+
webserver_type: nginx-fpm
6+
router_http_port: "80"
7+
router_https_port: "443"
8+
xdebug_enabled: false
9+
database:
10+
type: mariadb
11+
version: "10.4"
12+
composer_version: "2"
13+
nodejs_version: "18"

.editorconfig

+18
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
root = true
2+
3+
[*]
4+
charset = utf-8
5+
end_of_line = lf
6+
indent_size = 4
7+
indent_style = space
8+
insert_final_newline = true
9+
trim_trailing_whitespace = true
10+
11+
[*.md]
12+
trim_trailing_whitespace = false
13+
14+
[*.{yml,yaml}]
15+
indent_size = 2
16+
17+
[docker-compose.yml]
18+
indent_size = 4

.env.example

+53
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
APP_NAME="Feed Canary"
2+
APP_ENV=local
3+
APP_KEY=
4+
APP_DEBUG=true
5+
APP_URL=http://localhost
6+
7+
LOG_CHANNEL=stack
8+
LOG_DEPRECATIONS_CHANNEL=null
9+
LOG_LEVEL=debug
10+
11+
DB_CONNECTION=mysql
12+
DB_HOST=127.0.0.1
13+
DB_PORT=3306
14+
DB_DATABASE=laravel
15+
DB_USERNAME=root
16+
DB_PASSWORD=
17+
18+
BROADCAST_DRIVER=log
19+
CACHE_DRIVER=file
20+
FILESYSTEM_DISK=local
21+
QUEUE_CONNECTION=sync
22+
SESSION_DRIVER=file
23+
SESSION_LIFETIME=120
24+
25+
MEMCACHED_HOST=127.0.0.1
26+
27+
REDIS_HOST=127.0.0.1
28+
REDIS_PASSWORD=null
29+
REDIS_PORT=6379
30+
31+
MAIL_MAILER=smtp
32+
MAIL_HOST=mailpit
33+
MAIL_PORT=1025
34+
MAIL_USERNAME=null
35+
MAIL_PASSWORD=null
36+
MAIL_ENCRYPTION=null
37+
MAIL_FROM_ADDRESS="[email protected]"
38+
MAIL_FROM_NAME="${APP_NAME}"
39+
40+
MAILTRAP_HOST="send.api.mailtrap.io"
41+
MAILTRAP_API_KEY=""
42+
43+
VITE_APP_NAME="${APP_NAME}"
44+
VITE_PUSHER_APP_KEY="${PUSHER_APP_KEY}"
45+
VITE_PUSHER_HOST="${PUSHER_HOST}"
46+
VITE_PUSHER_PORT="${PUSHER_PORT}"
47+
VITE_PUSHER_SCHEME="${PUSHER_SCHEME}"
48+
VITE_PUSHER_APP_CLUSTER="${PUSHER_APP_CLUSTER}"
49+
50+
B2_APPLICATION_KEY_ID=
51+
B2_APPLICATION_KEY_SECRET=
52+
B2_BUCKET_NAME=
53+
B2_BUCKET_ID=

.env.example.local

+41
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
APP_NAME="Feed Canary"
2+
APP_ENV=local
3+
APP_KEY=
4+
APP_DEBUG=true
5+
APP_URL=https://feedcanary.ddev.site
6+
7+
LOG_LEVEL=debug
8+
9+
DB_CONNECTION=mysql
10+
DB_HOST=db
11+
DB_PORT=3306
12+
DB_DATABASE=db
13+
DB_USERNAME=db
14+
DB_PASSWORD=db
15+
16+
BROADCAST_DRIVER=log
17+
CACHE_DRIVER=file
18+
FILESYSTEM_DISK=local
19+
QUEUE_CONNECTION=sync
20+
SESSION_DRIVER=file
21+
SESSION_LIFETIME=120
22+
23+
REDIS_HOST=127.0.0.1
24+
REDIS_PASSWORD=null
25+
REDIS_PORT=6379
26+
27+
MAIL_MAILER=smtp
28+
MAIL_HOST=localhost
29+
MAIL_PORT=1025
30+
MAIL_USERNAME=null
31+
MAIL_PASSWORD=null
32+
MAIL_ENCRYPTION=null
33+
MAIL_FROM_ADDRESS="[email protected]"
34+
MAIL_FROM_NAME="${APP_NAME}"
35+
36+
VITE_APP_NAME="${APP_NAME}"
37+
VITE_PUSHER_APP_KEY="${PUSHER_APP_KEY}"
38+
VITE_PUSHER_HOST="${PUSHER_HOST}"
39+
VITE_PUSHER_PORT="${PUSHER_PORT}"
40+
VITE_PUSHER_SCHEME="${PUSHER_SCHEME}"
41+
VITE_PUSHER_APP_CLUSTER="${PUSHER_APP_CLUSTER}"

.env.example.production

+59
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
APP_NAME="Feed Canary"
2+
APP_ENV=production
3+
APP_KEY=
4+
APP_DEBUG=false
5+
APP_URL=https://feedcanary.com
6+
7+
SENTRY_LARAVEL_DSN=
8+
SENTRY_TRACES_SAMPLE_RATE=
9+
10+
LOG_CHANNEL=stack
11+
LOG_DEPRECATIONS_CHANNEL=null
12+
LOG_LEVEL=debug
13+
14+
DB_CONNECTION=mysql
15+
DB_HOST=127.0.0.1
16+
DB_PORT=3306
17+
DB_DATABASE=
18+
DB_USERNAME=
19+
DB_PASSWORD=
20+
21+
BROADCAST_DRIVER=log
22+
CACHE_DRIVER=redis
23+
FILESYSTEM_DISK=local
24+
QUEUE_CONNECTION=redis
25+
SESSION_DRIVER=file
26+
SESSION_LIFETIME=120
27+
28+
REDIS_HOST=127.0.0.1
29+
REDIS_PASSWORD=null
30+
REDIS_PORT=6379
31+
32+
MAIL_MAILER=resend
33+
MAIL_FROM_ADDRESS="[email protected]"
34+
MAIL_FROM_NAME="${APP_NAME}"
35+
36+
MAILGUN_DOMAIN=
37+
MAILGUN_SECRET=
38+
39+
RESEND_API_KEY=
40+
41+
MAILTRAP_HOST=send.api.mailtrap.io
42+
MAILTRAP_API_KEY=
43+
44+
VITE_APP_NAME="${APP_NAME}"
45+
VITE_PUSHER_APP_KEY="${PUSHER_APP_KEY}"
46+
VITE_PUSHER_HOST="${PUSHER_HOST}"
47+
VITE_PUSHER_PORT="${PUSHER_PORT}"
48+
VITE_PUSHER_SCHEME="${PUSHER_SCHEME}"
49+
VITE_PUSHER_APP_CLUSTER="${PUSHER_APP_CLUSTER}"
50+
51+
B2_APPLICATION_KEY_ID=
52+
B2_APPLICATION_KEY_SECRET=
53+
B2_BUCKET_NAME=
54+
B2_BUCKET_ID=
55+
56+
# Horizon allow list
57+
REMOTE_ADDRESSES='[""]'
58+
59+
PLAUSIBLE_DOMAIN=

.gitattributes

+11
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
* text=auto eol=lf
2+
3+
*.blade.php diff=html
4+
*.css diff=css
5+
*.html diff=html
6+
*.md diff=markdown
7+
*.php diff=php
8+
9+
/.github export-ignore
10+
CHANGELOG.md export-ignore
11+
.styleci.yml export-ignore

.github/.env.ci

+16
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
APP_NAME="Feed Canary"
2+
APP_ENV=test
3+
APP_KEY=
4+
APP_DEBUG=true
5+
APP_URL=http://localhost
6+
7+
DB_CONNECTION=mysql
8+
DB_HOST=127.0.0.1
9+
DB_DATABASE=laravel
10+
DB_USERNAME=root
11+
DB_PASSWORD=password
12+
13+
REDIS_CLIENT=phpredis
14+
REDIS_HOST=127.0.0.1
15+
REDIS_PASSWORD=null
16+
REDIS_PORT=6379

.github/workflows/ci.yaml

+62
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
name: ci
2+
on:
3+
workflow_dispatch:
4+
push:
5+
branches:
6+
- main
7+
pull_request:
8+
jobs:
9+
phpstan:
10+
name: PHPStan + Pint
11+
runs-on: ubuntu-latest
12+
steps:
13+
- name: Prepare PHP
14+
id: setup-php
15+
uses: shivammathur/setup-php@v2
16+
with:
17+
php-version: 8.3
18+
tools: composer:v2
19+
- name: Checkout
20+
uses: actions/checkout@v4
21+
- name: Install Composer dependencies
22+
run: composer install --no-interaction --no-ansi --no-progress
23+
- name: Run PHPStan
24+
run: ./vendor/bin/phpstan analyse --memory-limit=2G
25+
- name: Run Pint
26+
run: ./vendor/bin/pint --test
27+
test:
28+
name: Pest Tests
29+
needs: phpstan
30+
runs-on: ubuntu-latest
31+
services:
32+
mysql:
33+
image: mysql:8.0
34+
env:
35+
MYSQL_ROOT_PASSWORD: password
36+
MYSQL_DATABASE: laravel
37+
ports:
38+
- 3306:3306
39+
options: >-
40+
--health-cmd "mysqladmin ping"
41+
--health-interval 10s
42+
--health-timeout 5s
43+
--health-retries 3
44+
steps:
45+
- name: Prepare PHP
46+
id: setup-php
47+
uses: shivammathur/setup-php@v2
48+
with:
49+
php-version: 8.3
50+
tools: composer:v2
51+
- name: Checkout
52+
uses: actions/checkout@v4
53+
- name: Install Composer dependencies
54+
run: composer install --no-interaction --no-ansi --no-progress
55+
- name: Copy .env
56+
run: cp .github/.env.ci .env
57+
- name: Generate key
58+
run: php artisan key:generate
59+
- name: Run migrations
60+
run: php artisan migrate
61+
- name: Run tests
62+
run: php artisan test

.gitignore

+18
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
/.phpunit.cache
2+
/node_modules
3+
/public/hot
4+
/public/storage
5+
/storage/*.key
6+
/vendor
7+
.env
8+
.env.backup
9+
.env.production
10+
.phpunit.result.cache
11+
Homestead.json
12+
Homestead.yaml
13+
auth.json
14+
npm-debug.log
15+
yarn-error.log
16+
/.fleet
17+
/.idea
18+
/.vscode

LICENSE

+7
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
Copyright 2024 Matt Stein
2+
3+
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
4+
5+
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
6+
7+
THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

0 commit comments

Comments
 (0)