Skip to content
Open

? #1

Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
6204 commits
Select commit Hold shift + click to select a range
0259e33
Merge pull request #1039 from UniversityRadioYork/cs-FixLocalInstall
cs-endo Nov 16, 2021
9dce025
Merge remote-tracking branch 'origin/master' into markspolakovs-docker
markspolakovs Nov 19, 2021
63ce2fc
Use sane paths
markspolakovs Nov 19, 2021
e80f82e
Use sane paths
markspolakovs Nov 19, 2021
6c82809
Merge branch 'markspolakovs-docker' of github.com:UniversityRadioYork…
markspolakovs Nov 19, 2021
0ea661d
Document
markspolakovs Nov 19, 2021
296b682
Merge pull request #884 from UniversityRadioYork/markspolakovs-docker
markspolakovs Nov 19, 2021
6bb88cd
Add action to rebuild base Docker image
markspolakovs Nov 20, 2021
8e717e1
Allow manual runs
markspolakovs Nov 20, 2021
4a3f39f
Lower-case name
markspolakovs Nov 20, 2021
5cddebb
Test devcontainer config
markspolakovs Nov 20, 2021
45cb4ed
Config tweaks
markspolakovs Nov 20, 2021
5e3d9b9
Pending changes exported from your codespace
Nov 20, 2021
f7dd0ed
Further configuration tweaks
markspolakovs Nov 20, 2021
77de495
Undo MyRadioException change
markspolakovs Nov 20, 2021
277b0ad
Document
markspolakovs Nov 20, 2021
d6dc8cb
Ad a couple forgotten bits of setup
markspolakovs Nov 20, 2021
e2b1ce9
Use mailhog sendmail for email
markspolakovs Nov 20, 2021
adb2f20
Fix mailhog config
markspolakovs Nov 20, 2021
89e5fcc
Add xdebug configuration for vscode
markspolakovs Nov 20, 2021
afd255b
Merge branch 'master' into marks/devcontainer
markspolakovs Nov 20, 2021
9c703b3
Document
markspolakovs Nov 20, 2021
c7db2f1
Move install process over to new /docs folder
cs-endo Dec 4, 2021
c593152
Add in-line documentation to base level scripts
cs-endo Dec 4, 2021
120909e
Add documentation to database setup
cs-endo Dec 4, 2021
d217bc9
Add reference to MYRADIO_CURRENT_SCHEMA_VERSION
cs-endo Dec 4, 2021
72231eb
Add explanation for analytics patch
cs-endo Dec 4, 2021
64cffa6
Clarify db hostname for docker install
cs-endo Dec 6, 2021
79fe524
Explain use of podcast explicit boolean
cs-endo Dec 6, 2021
465b836
Explain patch 3's query more accurately
cs-endo Dec 6, 2021
d312fa2
Merge pull request #1044 from UniversityRadioYork/cs-basic-docs
markspolakovs Dec 11, 2021
8b875e0
Merge remote-tracking branch 'origin/master' into marks/devcontainer
markspolakovs Dec 11, 2021
edb17b5
Fix bro-ken link
markspolakovs Dec 11, 2021
c1088ce
Merge pull request #1041 from UniversityRadioYork/marks/devcontainer
markspolakovs Dec 11, 2021
764737d
Training cut-off + people limit (fixes #1049, fixes #1052) (#1050)
markspolakovs Feb 23, 2022
55b0ee1
Fix semantic playlists by pulling recent tracks from everything apart…
mstratford Mar 20, 2022
b4f87ff
Merge branch 'master' into mstratford/welcome
mstratford Jun 19, 2022
d7f7016
AutoViz control (#1061)
markspolakovs Jun 19, 2022
09aaff8
Fix autoviz clip URL generation
markspolakovs Jun 19, 2022
15aebdd
Fix some timeslots sometimes not showing up
markspolakovs Jun 24, 2022
8977a6c
Check selector to display currentAndNext off-air vs Jukebox (#1063)
markspolakovs Aug 14, 2022
6a849c3
update enable disable message on autoViz table
ColinRoitt Aug 15, 2022
219d61a
Merge branch 'master' into colin-autoviz-tweak
ColinRoitt Aug 15, 2022
e2c5c15
Merge pull request #1064 from UniversityRadioYork/colin-autoviz-tweak
mstratford Aug 15, 2022
5582b62
JWT Issuing
michael-grace Aug 30, 2022
0140a67
Export events calendar to iCal (#999)
markspolakovs Sep 19, 2022
c60f9db
Include shows in user iCal feed (#1067)
markspolakovs Sep 19, 2022
9e3356f
Merge branch 'master' into mstratford/welcome
markspolakovs Sep 19, 2022
c3efc4d
Event duplication (#1065)
markspolakovs Sep 24, 2022
40c712d
Fix failure to signup when a signup cutoff is set (#1074)
markspolakovs Sep 26, 2022
2e9b12b
Fix PHP notice on createDemo page (#1075)
markspolakovs Sep 27, 2022
1bb0305
Create stacks.yml
markspolakovs Sep 28, 2022
6ff1dca
Rework inputs
markspolakovs Sep 28, 2022
efa628e
FIx secrets
markspolakovs Sep 28, 2022
33feb2b
Remove notice about clearing cache from podcast form
markspolakovs Oct 3, 2022
d8b0291
Update signup cutoff and max participants when editing demo (#1078)
markspolakovs Oct 4, 2022
dee8429
Show day of week in demo times (#1083)
markspolakovs Oct 5, 2022
21e5780
Allow archiving a training status (#1084)
markspolakovs Oct 8, 2022
79609a7
Whoops
markspolakovs Oct 8, 2022
9a5cf09
Make Studio Trained the requirement to apply for shows
markspolakovs Oct 8, 2022
29150f8
Remove notice about clearing cache from podcast form
michael-grace Oct 9, 2022
69710e3
allow string 'false' to be false in getNowPlaying (#1070)
michael-grace Oct 9, 2022
9cf16a7
Cancel demos (#1087)
markspolakovs Oct 10, 2022
8f1f789
php is annoying
markspolakovs Oct 10, 2022
3a35281
remove mark user trained button (#1089)
michael-grace Oct 11, 2022
afcdb8c
Clean up demo_attendee records for missed demos (#1081)
markspolakovs Oct 14, 2022
68078e9
Pink
michael-grace Oct 17, 2022
0106699
Merge pull request #1032 from UniversityRadioYork/mstratford/welcome
mstratford Oct 17, 2022
8db99a7
Warning for allocating season where user hasn't signed contract (#1059)
michael-grace Jan 6, 2023
7334587
Fix double space in "Attending Training" email (#1106)
markspolakovs Jan 23, 2023
d324236
Wrap setShowPhoto in a transaction
markspolakovs Apr 10, 2023
132941d
Merge pull request #1112 from UniversityRadioYork/marks/GH-1111
JamboPE Apr 11, 2023
c837592
Update menu.json
JamboPE Jul 7, 2023
34682d3
Update menu.json
JamboPE Jul 7, 2023
7cbb233
Merge pull request #1120 from UniversityRadioYork/JamboPE-removing-tr…
JamboPE Jul 7, 2023
079eef4
just everything on prod
Jul 17, 2023
039f576
tidy prod
Jul 18, 2023
e5931d9
all the stuff living on prod
michael-grace Jul 18, 2023
acefa58
fix userSelectedTimeslot
michael-grace Aug 6, 2023
655ad8b
fix userSelectedTimeslot (#1125)
michael-grace Aug 6, 2023
9b27153
Semesterisation
JP5457 Jun 28, 2023
8aed92f
Custom Week Names
michael-grace Aug 9, 2023
652b22f
MyRadio_Term Class
michael-grace Aug 14, 2023
df6108a
Merge branch 'master' into jp-semester-2
michael-grace Aug 14, 2023
1a1ea52
shut up, it could have worked
Sep 6, 2023
c59b89f
Update text on training slots page
ColinRoitt Sep 21, 2023
3c0561c
Merge pull request #1127 from UniversityRadioYork/colin-edit-semantics
ColinRoitt Sep 21, 2023
9281d36
few fixes for semesters
Sep 21, 2023
21b70b1
Update text on training slots page
ColinRoitt Sep 21, 2023
57882c0
Semesterisation
JamboPE Sep 27, 2023
620534a
song requests link (#1129)
JamboPE Sep 27, 2023
00739ec
prod patches
Oct 6, 2023
660d48b
Merge pull request #1131 from UniversityRadioYork/patches-23-10-06
JP5457 Oct 6, 2023
a1c8628
show art button
JP5457 Oct 5, 2023
e2762df
Merge pull request #1132 from UniversityRadioYork/jp-editshowart
JP5457 Oct 6, 2023
db48096
Removed duplicate item in menu.json
JamboPE Oct 9, 2023
ce441e2
Merge pull request #1133 from UniversityRadioYork/jambo-fix-duplicate…
dizorganised Oct 9, 2023
a3ad63a
test
Oct 17, 2023
372da96
test
Oct 17, 2023
409d271
Temp fix to password reset email in MyRadioDefaultAuthenticator.php (…
JamboPE Oct 25, 2023
2bf1d39
michael
Oct 18, 2023
bc7e739
Temp fix to password reset email in MyRadioDefaultAuthenticator.php (…
JamboPE Oct 25, 2023
9d88f4a
test
Oct 17, 2023
c988fa9
Merge pull request #1134 from UniversityRadioYork/data-protection-is-…
JP5457 Oct 31, 2023
2ca6346
Merge branch 'master' of myradio.github:UniversityRadioYork/myradio
Nov 1, 2023
cfc6ff4
Merge branch 'master' into mg-stuffs
Nov 1, 2023
d6a47a2
add demoer id
Nov 1, 2023
9274972
int memberid
Nov 1, 2023
9ed6f7c
Update MyRadio_Scheduler.php
hitime1234 Nov 15, 2023
4c38fbb
Get number of weeks from Myradio_term
hitime1234 Nov 15, 2023
c527e69
woopise actually does php and remove dups
hitime1234 Nov 15, 2023
dae0209
removes comment
hitime1234 Nov 15, 2023
1976b7b
Merge pull request #1138 from hitime1234/master
JP5457 Nov 22, 2023
5cd1c2e
F in chat for the spreadsheeeeet
michael-grace Jan 8, 2024
5d1fb2b
fix conflict
michael-grace Jan 11, 2024
82efadf
Merge remote-tracking branch 'origin/mg-stuffs' into mg-booking-app-s…
michael-grace Jan 11, 2024
fe7390e
Merge remote-tracking branch 'origin/michael-grace-patch-1' into mg-b…
michael-grace Jan 11, 2024
d9eefc4
jwt change
michael-grace Jan 16, 2024
eb5eaab
exception for redirect to
michael-grace Jan 16, 2024
5f29ba7
remove lines;
michael-grace Jan 16, 2024
84a0a61
docker 1
Feb 2, 2024
02d4bad
Merge remote-tracking branch 'origin/mg-booking-app-stuff' into mg-st…
Feb 2, 2024
af9927b
Set permissions for image uploads (#1144)
markspolakovs Feb 7, 2024
88a1583
Set permissions for image uploads (#1144)
markspolakovs Feb 7, 2024
a50fd2f
remove track n trace reference (#1145)
alyxbb Feb 7, 2024
5c1f028
email fixes
Feb 8, 2024
0ab0f50
prod dockerfile
Feb 17, 2024
95586b3
remove moved ssession sstart
Feb 17, 2024
b759efc
Upgrade development Dockerfile to PHP 8 + setup fixes (#1142)
markspolakovs Feb 21, 2024
2e7429c
conflicts
michael-grace Mar 6, 2024
00a8a27
Dockerfile updates
michael-grace Mar 6, 2024
bf7c446
Merge pull request #1146 from UniversityRadioYork/mg-stuffs
ashhhleyyy Mar 20, 2024
d458891
Update menu.json
hitime1234 May 10, 2024
1dabc43
Update menu.json
hitime1234 May 10, 2024
d0ed56e
Merge pull request #1147 from hitime1234/master
hitime1234 May 10, 2024
0079295
fix the breaking issue in php8 and some of the warnings (#1150)
michael-grace May 21, 2024
581c08f
London Bridge has fallen (#1148)
alyxbb May 21, 2024
23116a4
Terms API
michael-grace May 29, 2024
2a756b8
Revert "Terms API"
michael-grace May 29, 2024
dbd57d8
Nickname Upgrade
hitime1234 Aug 22, 2024
f241e70
fixes news column
hitime1234 Aug 22, 2024
d7e19f6
fixes email leak
hitime1234 Aug 22, 2024
47667ec
changes wording on emails to state that emails are public
hitime1234 Aug 22, 2024
46eb851
adds nickname to user Profile inside internal myradio
hitime1234 Aug 23, 2024
94c566e
fixes show search name becoming concat
hitime1234 Aug 23, 2024
55c582f
migration test
hitime1234 Aug 23, 2024
402197b
needs actually tell it to update
hitime1234 Aug 23, 2024
6cbd87f
migration test pt2?
hitime1234 Aug 23, 2024
1f70d5f
migration test pt3?
hitime1234 Aug 23, 2024
b3f6e09
migration test pt4?
hitime1234 Aug 23, 2024
2260f10
?????????
hitime1234 Aug 23, 2024
1595045
?????????????
hitime1234 Aug 23, 2024
568c8a4
maybe?
hitime1234 Aug 23, 2024
00b7f79
Finale (Ready for merge)
hitime1234 Aug 24, 2024
0e67df4
updated the install docs to includes steps about setting up your own …
hitime1234 Aug 25, 2024
031ce88
formatting
hitime1234 Aug 25, 2024
b3d88cf
smaller format
hitime1234 Aug 25, 2024
529480d
better wording
hitime1234 Aug 25, 2024
84a0688
spacing
hitime1234 Aug 25, 2024
65dea72
remove unneed words
hitime1234 Aug 25, 2024
75219aa
adding headers
hitime1234 Aug 25, 2024
cf3dfca
ADDS fixes for missing metadata key
hitime1234 Aug 25, 2024
91d2cd7
removes wording regarding metadata key missing issue
hitime1234 Aug 25, 2024
098597c
added some details to docker install instructions
Aug 26, 2024
40bd095
added some details to docker install instructions
Aug 26, 2024
e2a7cc8
Merge pull request #1154 from UniversityRadioYork/rens-updates
hitime1234 Aug 26, 2024
f7979ec
didn't catch these break search. I will remove them for now
hitime1234 Aug 26, 2024
a124897
Fix Warnings and Errors for Deprecated Things in PHP8 (#1151)
michael-grace Aug 26, 2024
c1eb331
Merge pull request #1157 from UniversityRadioYork/rens-updates
hitime1234 Aug 26, 2024
62e0d53
fixes search list containing nicknames
hitime1234 Aug 26, 2024
1109814
Merge pull request #1158 from UniversityRadioYork/master
hitime1234 Aug 26, 2024
4bae430
remove unneeded words
hitime1234 Aug 26, 2024
d4a2ee8
Merge pull request #1159 from UniversityRadioYork/rens-updates
hitime1234 Aug 26, 2024
d4a7d22
Remove Stacks workflow (#1155)
markspolakovs Aug 26, 2024
c2eaf97
Few fixes to fix loading showplans
michael-grace Aug 28, 2024
d1364cc
Fix inconsistency for updating showplans
michael-grace Sep 5, 2024
6bf305d
strtotime doesn't support null
michael-grace Sep 5, 2024
90994f6
fix queries (it expects strings)
michael-grace Sep 5, 2024
4d7d84d
can't do consistency can we
michael-grace Sep 5, 2024
78c6376
More PHP8 Fixes
michael-grace Sep 5, 2024
f356653
Fix graphql api (#1165)
ashhhleyyy Sep 11, 2024
d85b0ae
Fix "ClientAware is not compatible" exception on graphql (#1167)
markspolakovs Sep 11, 2024
ba3639d
fix: do not require nickname on signup
ashhhleyyy Sep 15, 2024
f8e9cf7
fix: fix user signup for reals this time (#1170)
ashhhleyyy Sep 15, 2024
f280efc
Actions: Build ARM64 dev base image (#1169)
markspolakovs Sep 15, 2024
8021430
Revert nicknames until tested further (#1173)
ashhhleyyy Sep 16, 2024
8ce67b1
YUSU -> York SU (#1174)
markspolakovs Sep 16, 2024
7e169b2
new studio access link
alyxbb Sep 16, 2024
f70be5b
Merge pull request #1175 from UniversityRadioYork/alyx-studio-access
alyxbb Sep 16, 2024
ed9c8d9
Fix prod dockerfile (#1176)
ashhhleyyy Sep 16, 2024
7aad30a
terms api (#1161)
michael-grace Sep 17, 2024
a0d4c81
fix: encode emails correctly (#1178)
ashhhleyyy Sep 17, 2024
37e9f07
Remove adv. studio training option temp
ColinRoitt Sep 17, 2024
1109887
Merge pull request #1179 from UniversityRadioYork/colin-update-traini…
ColinRoitt Sep 18, 2024
35984ca
Split the I want to section
AlexNimzy Oct 2, 2024
30ed800
Moved the things into different columns
AlexNimzy Oct 2, 2024
7322d8f
Created Merch own section
AlexNimzy Oct 3, 2024
24010eb
Merge pull request #1189 from UniversityRadioYork/Alex/Menu-Fix
AlexNimzy Oct 3, 2024
a001244
fix(docker): support building with podman (#1166)
ashhhleyyy Oct 3, 2024
0e86f9e
events can have a different owner (#1190)
alyxbb Oct 3, 2024
c6b1c90
Show booking availability in training form (#1194)
ColinRoitt Oct 17, 2024
225dd38
Ignore .DS_Store in .gitignore (#1193)
ColinRoitt Oct 17, 2024
65451df
Add clipper to Show Tools list under logger
ColinRoitt Nov 6, 2024
a995df9
Update podcast art size requirements
ColinRoitt Nov 19, 2024
01a038b
Merge pull request #1196 from UniversityRadioYork/colin/update-podcas…
ColinRoitt Nov 19, 2024
64938cd
Merge pull request #1195 from UniversityRadioYork/colin/clipper-link
ColinRoitt Dec 2, 2024
7f2d07a
Link to new presenters' contract in google drive
ColinRoitt Dec 4, 2024
1bde253
Merge pull request #1202 from UniversityRadioYork/colin/update-presen…
ColinRoitt Dec 6, 2024
ad5dc23
improve search (#1201)
alyxbb Dec 15, 2024
c35f77e
Update dev-base-image.yml (#1203)
hitime1234 Mar 10, 2025
9310818
fix: several warnings from php8 migration (#1204)
ashhhleyyy Mar 23, 2025
2ce4687
Change podcast RSS feed email (#1207)
ColinRoitt Apr 2, 2025
b3a1542
include @ in email string (#1208)
ColinRoitt Apr 2, 2025
3324cc5
Add patch for cancel timeslot coming through API
ColinRoitt Apr 16, 2025
59b178c
check MyRadioUser obj instead of session
ColinRoitt Apr 17, 2025
1d2946f
Merge pull request #1209 from UniversityRadioYork/colin/timeslot-canc…
ColinRoitt Apr 17, 2025
de192f6
add a fix if calling schedule endpoint through API
ColinRoitt Apr 21, 2025
f2d5050
Merge pull request #1210 from UniversityRadioYork/colin/allocate-api-fix
ColinRoitt Apr 22, 2025
89b8ff7
actually fix api call
ColinRoitt Apr 23, 2025
da89b2d
Merge pull request #1211 from UniversityRadioYork/colin/actually-fix-api
ColinRoitt Apr 23, 2025
51479f1
add link to baraddur
ColinRoitt May 6, 2025
05c779e
Merge pull request #1214 from UniversityRadioYork/colin/baraddur
ColinRoitt May 6, 2025
18693aa
Add move link to scheduler
ColinRoitt May 12, 2025
b9c37b9
introduce an add episode button to seasons
ColinRoitt May 12, 2025
0f8184e
add placeholder user ID for API calls in addEpisode method
ColinRoitt May 12, 2025
2f67f4a
send email on move timeslot function
ColinRoitt May 15, 2025
5ddaff5
put back mixcloud data
ColinRoitt May 15, 2025
3307831
fix display of tables with new buttons
ColinRoitt May 16, 2025
29291cd
get times for moved timeslot email
ColinRoitt May 16, 2025
078a6c3
handle API call on addItem
ColinRoitt May 18, 2025
5ced0d0
fix incorrect logic
ColinRoitt May 21, 2025
8d26a85
get memberid from API call
ColinRoitt May 21, 2025
17d1e97
add rest of the function...
ColinRoitt May 21, 2025
aba0a3e
add default arg
ColinRoitt May 21, 2025
a761188
allow memberid to be sent via request
ColinRoitt May 28, 2025
170de63
remove debug placeholders
ColinRoitt Jun 2, 2025
aeba48a
add mixcloud data back
ColinRoitt Jun 2, 2025
c3f4a34
Merge pull request #1215 from UniversityRadioYork/colin-scheduler-cha…
ColinRoitt Jun 2, 2025
11dbca9
Update move episode email subject line (#1216)
ColinRoitt Jun 3, 2025
767eae2
fix: use X-Real-IP header for remote IP (#1221)
ashhhleyyy Jun 22, 2025
5e77811
fix: fix: lol (#1222)
ashhhleyyy Jun 22, 2025
24a3e59
Ash/new signups (#1224)
ashhhleyyy Sep 20, 2025
7ad2314
chore: update keycard access form (#1225)
ashhhleyyy Sep 22, 2025
f125bb8
fix: attending demos though UI (#1226)
ashhhleyyy Sep 22, 2025
908297e
Add show art link to MyRadio (#1227)
AlexNimzy Oct 2, 2025
f239138
fix: update webcam streaming for new system
ashhhleyyy Oct 17, 2025
52ed79e
chore: remove request show marketing form from main menu
ashhhleyyy Oct 6, 2025
4f0d947
fix: hopefully make officership creation work again
ashhhleyyy Jan 21, 2026
368f5c5
Merge pull request #1231 from UniversityRadioYork/ash/fix-officer-cre…
lxiagkb Jan 22, 2026
07c2952
fix(docker): add --no-security-blocking
ashhhleyyy Feb 8, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
1 change: 1 addition & 0 deletions .devcontainer/Dockerfile.dev
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
FROM ghcr.io/universityradioyork/myradio/dev-base:latest
59 changes: 59 additions & 0 deletions .devcontainer/devcontainer.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
// For format details, see https://aka.ms/devcontainer.json. For config options, see the README at:
// https://github.com/microsoft/vscode-dev-containers/tree/v0.203.0/containers/docker-existing-docker-compose
// If you want to run as a non-root user in the container, see .devcontainer/docker-compose.yml.
{
"name": "MyRadio + Postgres, Memcached, Mailhog",

// Update the 'dockerComposeFile' list if you have more compose files or use different names.
// The .devcontainer/docker-compose.yml file contains any overrides you need/want to make.
"dockerComposeFile": [
"../docker-compose.yml",
"docker-compose.yml"
],

"service": "myradio",

// The optional 'workspaceFolder' property is the path VS Code should open by default when
// connected. This is typically a file mount in .devcontainer/docker-compose.yml
"workspaceFolder": "/var/www/myradio",

// Set *default* container specific settings.json values on container create.
"settings": {
"sqltools.connections": [{
"name": "Container database",
"driver": "PostgreSQL",
"server": "postgres",
"previewLimit": 50,
"port": 5432,
"database": "myradio",
"username": "myradio",
"password": "myradio"
}]
},

// Add the IDs of extensions you want installed when the container is created.
"extensions": [
"bmewburn.vscode-intelephense-client",
"felixfbecker.php-debug",
"mtxr.sqltools",
"mtxr.sqltools-driver-pg",
"whatwedo.twig"
],

// Use 'forwardPorts' to make a list of ports inside the container available locally.
"forwardPorts": [7080, 8025],

// "initializeCommand": ""

// Uncomment the next line if you want start specific services in your Docker Compose config.
// "runServices": [],

// Uncomment the next line if you want to keep your containers running after VS Code shuts down.
// "shutdownAction": "none",

// Uncomment the next line to run commands after the container is created - for example installing curl.
"postCreateCommand": "COMPOSER_VENDOR_DIR=/workspaces/MyRadio/src/vendor composer install && apachectl restart",

// Uncomment to connect as a non-root user if you've added one. See https://aka.ms/vscode-remote/containers/non-root.
// "remoteUser": "vscode"
}
25 changes: 25 additions & 0 deletions .devcontainer/docker-compose.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
version: '3'
services:
# Update this to the name of the service you want to work with in your docker-compose.yml file
myradio:
# Use a pre-built base image to speed up startup
build:
context: .
dockerfile: .devcontainer/Dockerfile.dev

# If you want add a non-root user to your Dockerfile, you can use the "remoteUser"
# property in devcontainer.json to cause VS Code its sub-processes (terminals, tasks,
# debugging) to execute as the user. Uncomment the next line if you want the entire
# container to run as this user instead. Note that, on Linux, you may need to
# ensure the UID and GID of the container user you create matches your local user.
# See https://aka.ms/vscode-remote/containers/non-root for details.
#
# user: vscode

init: true

volumes:
# Update this to wherever you want VS Code to mount the folder of your project
- .:/workspaces/MyRadio:cached
- ./sample_configs/codespaces-server-name.conf:/etc/apache2/conf-enabled/server-name.conf
- ./sample_configs/codespaces-apache.conf:/etc/apache2/sites-available/myradio.conf
2 changes: 2 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
src/vendor/
node_modules/
4 changes: 4 additions & 0 deletions .eslintignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
*.min.js
src/vendor/*
src/Public/js/vendor/**/*.js
src/PublicAPI/rtfm/*
16 changes: 16 additions & 0 deletions .eslintrc.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
{
"root": true,
"env": {
"browser": true,
"es6": true,
"jquery": true
},
"extends": "eslint:recommended",
"rules": {
"indent": ["error", 2],
"linebreak-style": ["error", "unix"],
"quotes": ["error", "double"],
"semi": ["error", "always"],
"no-console": "off"
}
}
50 changes: 50 additions & 0 deletions .github/workflows/dev-base-image.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
name: Update development base image

on:
push:
branches: [ master ]
paths:
- sample_configs/*
- composer.*
- .github/*
- .devcontainer/*
workflow_dispatch:
inputs:
ref:
description: Branch, tag, or commit SHA to build against
required: false
default: master
docker-tag:
description: Tag to add to the Docker image
required: false
default: latest

jobs:

build:

runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4
with:
ref: ${{ github.event.inputs.ref || 'master' }}
- name: Set up QEMU
uses: docker/setup-qemu-action@v3

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3

- name: Docker Login
uses: docker/login-action@v1.10.0
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}

- name: Build and push
uses: docker/build-push-action@v6
with:
platforms: linux/amd64,linux/arm64
push: true
tags: ghcr.io/universityradioyork/myradio/dev-base:${{ github.event.inputs.docker-tag || 'latest' }}
17 changes: 15 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,5 +1,18 @@
/nbproject
*.LCK*
MyRadio_Config.local.php
MyRadio_Config.local.php*
util/checkpassword.conf
*.sw[a-z]
sftp-*.json
.sync-config.cson
.tags*
Thumbs.db
cache.properties
build/
.phpintel
.vagrant
src/vendor
composer.lock
node_modules/
src/Public/img/stats_training_*.svg
.idea/
.DS_Store
66 changes: 66 additions & 0 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
sudo: required
dist: trusty # Use notancient unbuntu
language: php
php:
- '7.1'
- '7.2'
- '7.3'
- '7.4'
- 'nightly' # why not

matrix:
allow_failures:
- php: 'nightly'

cache:
directories:
- src/vendor
- $HOME/.cache/composer/files
- node_modules/

addons:
postgresql: '9.5'
services:
- postgresql
before_install:
- nvm install --lts # Updated Node required for eslint
install:
- composer install
- npm install eslint
- sudo apt-get update
- sudo apt-get install apache2 libapache2-mod-fastcgi
before_script:
# missing read perms on $HOME, which apache24 requires
- chmod 755 $HOME
# enable php-fpm
- phpenv config-add sample_configs/travis-php.ini
- sudo cp ~/.phpenv/versions/$(phpenv version-name)/etc/php-fpm.conf{.default,}
- sudo cp ~/.phpenv/versions/$(phpenv version-name)/etc/php-fpm.d/www.conf{.default,}
- sudo a2enmod rewrite actions fastcgi alias
- echo "cgi.fix_pathinfo = 1" >> ~/.phpenv/versions/$(phpenv version-name)/etc/php.ini
- ~/.phpenv/versions/$(phpenv version-name)/sbin/php-fpm
# configure apache virtual hosts
- sudo cp -f sample_configs/travis-fpm.conf /etc/apache2/sites-available/myradio-travis.conf
- sudo sed -e "s?%TRAVIS_BUILD_DIR%?$(pwd)?g" --in-place /etc/apache2/sites-available/myradio-travis.conf
- sudo a2dissite 000-default
- sudo a2ensite myradio-travis
- sudo service apache2 restart
- sudo apachectl -S
- sudo cat /etc/apache2/sites-enabled/*
# setup postgres
- psql -U postgres < sample_configs/postgres.sql
- PGPASSWORD=myradio psql -U myradio myradio < schema/base.sql
- for f in schema/patches/*.sql; do PGPASSWORD=myradio psql -U myradio myradio < $f; done
- PGPASSWORD=myradio psql -U myradio myradio < sample_configs/travis-auth.sql
# configure MyRadio
- cp sample_configs/travis-config.php src/MyRadio_Config.local.php
script:
- src/vendor/bin/phpcs --standard=PSR2 --ignore="*.min.*,*/vendor/*,*/PublicAPI/rtfm/*,*/Public/js/*" --exclude=Squiz.Classes.ValidClassName,PSR1.Files.SideEffects src/ -p -s
- node_modules/.bin/eslint .
- curl -v http://localhost/api/v2/config/publicconfig?api_key=travis-test-key
- src/vendor/bin/codecept run --debug --env travis
after_script:
- sudo cat $(pwd)/apache-access.log
- sudo cat $(pwd)/apache-error.log
- sudo cat ~/.phpenv/versions/$(phpenv version-name)/var/log/php-fpm.log
- sudo ls -l ~/.phpenv/versions/$(phpenv version-name)/var/log/
14 changes: 14 additions & 0 deletions .vscode/launch.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "Listen for Xdebug",
"type": "php",
"request": "launch",
"port": 9003
}
]
}
59 changes: 59 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
FROM php:8.2-apache

RUN apt-get update && apt-get install -y libpq-dev libpng-dev libjpeg-dev libldap-dev unzip \
libcurl4-openssl-dev libxslt-dev git libz-dev libzip-dev libmemcached-dev \
postgresql-client jq msmtp-mta ffmpeg

RUN docker-php-ext-install pgsql pdo_pgsql gd ldap curl xsl zip

RUN pecl install memcached && \
echo extension=memcached.so >> /usr/local/etc/php/conf.d/memcached.ini

RUN pecl install xdebug-3.3.1 && docker-php-ext-enable xdebug \
&& echo 'zend_extension="/usr/local/lib/php/extensions/no-debug-non-zts-20220829/xdebug.so"' >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini \
&& echo 'xdebug.client_port=9003' >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini \
&& echo 'xdebug.mode=develop,debug' >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini \
&& echo 'xdebug.start_with_request=yes' >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini \
&& echo 'xdebug.client_host=localhost' >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini

RUN echo 'error_reporting=E_ALL' >> /usr/local/etc/php/conf.d/error-reporting.ini

RUN echo "memory_limit=512M" >> /usr/local/etc/php/conf.d/uploads.ini
RUN echo "upload_max_filesize=512M" >> /usr/local/etc/php/conf.d/uploads.ini
RUN echo "post_max_size=512M" >> /usr/local/etc/php/conf.d/uploads.ini

RUN echo sendmail_path = "/usr/bin/msmtp -t --host mail --port 1025 --from myradio@ury.dev" > /usr/local/etc/php/conf.d/sendmail.ini

# Self-signed certificate
RUN openssl req -nodes -new -subj "/C=GB/ST=North Yorkshire/L=York/O=University Radio York/OU=Localhost/CN=localhost" > myradio.csr && \
openssl rsa -in privkey.pem -out myradio.key && \
openssl x509 -in myradio.csr -out myradio.crt -req -signkey myradio.key -days 999 && \
cp myradio.crt /etc/apache2/myradio.crt && \
cp myradio.key /etc/apache2/myradio.key

RUN a2enmod rewrite ssl

# Fixes for running on ARM
RUN echo "Mutex posixsem" >> /etc/apache2/apache2.conf

RUN echo "127.0.0.0/8" >> /etc/apache2/trusted-proxies.txt

COPY sample_configs/apache.conf /etc/apache2/sites-available/myradio.conf
RUN a2enmod remoteip && a2dissite 000-default && a2ensite myradio && apachectl -S

COPY --from=composer:latest /usr/bin/composer /usr/local/bin/composer

RUN mkdir -p /var/www/myradio && chown -R www-data:www-data /var/www/myradio && \
mkdir -p /var/log/myradio && chown -R www-data:www-data /var/log/myradio

WORKDIR /var/www/myradio
COPY composer.* /var/www/myradio/
RUN COMPOSER_VENDOR_DIR=/var/www/myradio/src/vendor composer install --no-security-blocking

COPY schema schema
COPY src src

COPY sample_configs/docker-config.php src/MyRadio_Config.local.php
RUN chown www-data:www-data /var/www/myradio/src/MyRadio_Config.local.php && chmod 664 /var/www/myradio/src/MyRadio_Config.local.php

CMD ["apache2-foreground"]
50 changes: 50 additions & 0 deletions Dockerfile.prod
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
FROM php:8.2-apache

RUN apt-get update && apt-get install -y libpq-dev libpng-dev libjpeg-dev libldap-dev unzip \
libcurl4-openssl-dev libxslt-dev git libz-dev libzip-dev libmemcached-dev \
postgresql-client jq msmtp-mta ffmpeg

RUN docker-php-ext-install pgsql pdo_pgsql gd ldap curl xsl zip

RUN pecl install memcached && \
echo extension=memcached.so >> /usr/local/etc/php/conf.d/memcached.ini

RUN echo 'error_reporting=E_ALL' >> /usr/local/etc/php/conf.d/error-reporting.ini

RUN echo "memory_limit=512M" >> /usr/local/etc/php/conf.d/uploads.ini
RUN echo "upload_max_filesize=512M" >> /usr/local/etc/php/conf.d/uploads.ini
RUN echo "post_max_size=512M" >> /usr/local/etc/php/conf.d/uploads.ini

RUN echo sendmail_path = "/usr/bin/msmtp -t --host ury.york.ac.uk --port 587 --from noreply@ury.org.uk" > /usr/local/etc/php/conf.d/sendmail.ini

# Self-signed certificate
RUN openssl req -nodes -new -subj "/C=GB/ST=North Yorkshire/L=York/O=University Radio York/OU=Localhost/CN=localhost" > myradio.csr && \
openssl rsa -in privkey.pem -out myradio.key && \
openssl x509 -in myradio.csr -out myradio.crt -req -signkey myradio.key -days 999 && \
cp myradio.crt /etc/apache2/myradio.crt && \
cp myradio.key /etc/apache2/myradio.key

RUN a2enmod rewrite ssl

RUN echo "144.32.64.160/27" >> /etc/apache2/trusted-proxies.txt

COPY sample_configs/apache.conf /etc/apache2/sites-available/myradio.conf
RUN a2enmod remoteip && a2dissite 000-default && a2ensite myradio && apachectl -S

COPY --from=composer:latest /usr/bin/composer /usr/local/bin/composer

RUN mkdir -p /var/www/myradio && chown -R www-data:www-data /var/www/myradio && \
mkdir -p /var/log/myradio && chown -R www-data:www-data /var/log/myradio && \
ln -s /dev/stderr /var/log/myradio/errors.log

WORKDIR /var/www/myradio
COPY composer.* /var/www/myradio/
RUN COMPOSER_VENDOR_DIR=/var/www/myradio/src/vendor composer install --no-security-blocking

COPY schema schema
COPY src src

COPY sample_configs/docker-config.php src/MyRadio_Config.local.php
RUN chown www-data:www-data /var/www/myradio/src/MyRadio_Config.local.php && chmod 664 /var/www/myradio/src/MyRadio_Config.local.php

CMD ["apache2-foreground"]
6 changes: 4 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,9 @@ their own community or student radio venture.

MyRadio is part of a suite of upcoming public projects, including:
- iTones, our liquidsoap sustainer system
- loggerng, our python audio logging and retriving system
- loggerng, our python audio logging and retrieving system
- Bootstrapping scripts for setting up and configuring all the dependencies

MyRadio uses Git-Flow as a development workflow: https://github.com/nvie/gitflow/
To install myradio locally, see the [Install Guide](docs/install.md)

MyRadio uses [GitHub Flow](https://guides.github.com/overviews/flow/) as a development workflow:
Loading